在一个windows cmd行中运行两个命令,一个命令是SET命令
发布时间:2020-12-14 01:42:28 所属栏目:Windows 来源:网络整理
导读:[目的] 这个简单的命令序列在Windows的CMD shell中运行: dir echo hello 将列出文件和目录并回显字符串. 但是,以下命令序列未按预期运行(至少由我): C:UsersAdministratorset name=value echo %name%%name%C:UsersAdministratorecho %name%valueC:Use
[目的]
这个简单的命令序列在Windows的CMD shell中运行: dir & echo hello 将列出文件和目录并回显字符串. 但是,以下命令序列未按预期运行(至少由我): C:UsersAdministrator>set name=value & echo %name% %name% C:UsersAdministrator>echo %name% value C:UsersAdministrator> 我们可以看到,第一个回声无法获得环境.你能帮忙发表评论吗?任何评论将不胜感激! PS:操作系统:Windows 7 X64 Home Pre
您的结果是由于%name%在解析阶段被扩展,并且在设置值之前立即解析整个行.
您可以通过两种方式之一获取与set命令在同一行的当前值. 1)使用CALL导致第二次解析ECHO%NAME%: set name=value&call echo %^name% 我在百分之间放了一个^,以防在行执行之前已经定义了名称.如果没有插入符号,您将获得旧值. 注意:您的原始行在&之前有一个空格,此空间将包含在变量的值中.您可以使用引号来阻止额外空间:set“name = value”& … 2)使用延迟扩展来获取执行时而不是解析时的值.大多数环境默认情况下没有启用延迟扩展.您可以使用适当的CMD.EXE选项在命令行上启用延迟扩展. cmd /v:on set "name=value" & echo !name! 延迟扩展当然可以在命令行上使用,但它在批处理文件中更常用. SETLOCAL用于在批处理文件中启用延迟扩展(它不能从命令行运行) setlocal enableDelayedExpansion set "name=value" & echo !name! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 监控 – 跟踪文件夹大小随时间增长的最佳方法?
- windows – 如何删除xp中以前的所有设备?
- 如何在Windows上可视化GitHub分支历史?
- gdi – 在Windows 10中带有标题栏的模糊窗口? Windows Upd
- windows-server-2008 – 如何在WIndows Server 2008 R2上设
- .net core Area独立成单独的dll文件
- 获取系统所有软件的卸载信息
- win10激活错误,软件授权服务报告无法激活计算机怎么办?
- windows-server-2008 – Active Directory:Server 2008和R
- gitblit在windows10上的安装及服务启动报错处理