相关疑难解决方法(0)

CALL命令与START with/WAIT选项

如何使用WAIT选项的START命令

START /wait notepad.exe 
START /wait  notepad.exe 
Run Code Online (Sandbox Code Playgroud)

...与使用CALL命令有什么不同?

CALL notepad.exe 
CALL notepad.exe 
Run Code Online (Sandbox Code Playgroud)

是否存在一种情况,其中一种可能表现不同,另一种情况取决于正在执行的内容?

windows batch-file

133
推荐指数
5
解决办法
44万
查看次数

Windows命令解释器(CMD.EXE)如何解析脚本?

我遇到了ss64.com,它为如何编写Windows命令解释器将运行的批处理脚本提供了很好的帮助.

但是,我一直无法找到批处理脚本的语法,扩展或不扩展的方法,以及如何逃避事情的良好解释.

以下是我无法解决的示例问题:

  • 如何管理报价系统?我制作了一个TinyPerl脚本
    (foreach $i (@ARGV) { print '*' . $i ; }),编译它并以这种方式调用它:
    • my_script.exe "a ""b"" c"?输出是 *a "b*c
    • my_script.exe """a b c"""?输出它*"a*b*c"
  • 内部echo命令如何工作?在那个命令中扩展了什么?
  • 为什么我必须for [...] %%I在文件脚本中使用,但for [...] %I在交互式会话中?
  • 什么是转义字符,以及在什么情况下?如何逃脱百分号?例如,我怎么能%PROCESSOR_ARCHITECTURE%字面回声?我发现echo.exe %""PROCESSOR_ARCHITECTURE%有效,有没有更好的解决方案?
  • 如何%配对?例:
    • set b=a,echo %a %b% c%%a a c%
    • set a =b,echo %a %b% c%bb c%
  • 如果此变量包含双引号,如何确保变量作为单个参数传递给命令?
  • 使用 …

windows parsing cmd batch-file variable-expansion

132
推荐指数
5
解决办法
6万
查看次数

如何在 cmd /c 中设置 %ERRORLEVEL%?

我希望能够在PowerShell中运行的命令提示符脚本(即)的开头将%ERRORLEVEL%环境变量(也称为“系统变量”)设置为任意值。每当人们想要设置(1)时,他们都会执行以下操作:cmd /c%ERRORLEVEL%

cmd /c "exit /b 3"
cmd /c "echo %ERRORLEVEL%" 
Run Code Online (Sandbox Code Playgroud)

但是,尽管在正常命令提示符中运行上述命令时%ERRORLEVEL%设置为3,但如果在 PowerShell 中执行这些确切的行,则退出代码环境变量不会设置3并保持为0。此外,您不能执行以下操作:

cmd /v:on /c "exit /b 3 & echo !ERRORLEVEL!"
Run Code Online (Sandbox Code Playgroud)

exit命令完全脱离命令执行(即),并且在运行cmd /c后没有其他命令。&

因此,我尝试在PowerShell中执行以下命令:

cmd /v:on /c "SET %ERRORLEVEL% = 4 & echo !ERRORLEVEL!"
Run Code Online (Sandbox Code Playgroud)

预期输出是4,但这总是输出0。我不明白为什么我无法使用SET环境%ERRORLEVEL%变量。我已经使用了延迟命令执行(示例在这里),但这里似乎没有任何摆弄。

有谁知道为什么该命令SET %ERRORLEVEL% = …

powershell cmd exit-code errorlevel delayedvariableexpansion

2
推荐指数
1
解决办法
4998
查看次数