我有一个框架,我只能通过 PowerShell 运行内容,但我需要运行批处理文件命令。我正在尝试运行 PowerShell 脚本,例如:
cmd /c blah
对于blah
我想做一些类似的事情:
set myPath = c:\theDir && if not exist %myPath% mkdir %myPath%
第一次运行它时,这将不起作用,因为 set
命令似乎直到第二行才生效。有什么想法吗?
最佳答案
这是因为 cmd
在一行解析时计算变量,而不是在运行时计算变量。要获得后一种行为,您必须使用延迟扩展:
cmd /c /v:on "set MyPath=C:\theDir&& if not exist "!myPath!" mkdir "!myPath!"
另请注意,set
中的 =
周围不能有空格,否则您将创建一个末尾带有空格的变量名称(即比如说,你的方法无论如何都不会起作用)。
关于batch-file - 批处理文件: Multiple Commands on one line with Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921499/