我有以下批处理命令,它获取一个注册表项并为变量赋值,但是当该键不存在时显示错误
for /f "tokens=2,*" %%a in ('reg query HKLM\Software\MySoftware\1.0\MyExecutable /v "InstallDir" ^| findstr InstallDir') do set InstallPath=%%b
Run Code Online (Sandbox Code Playgroud)
有没有办法绕过异常?我在reg查询之后或在命令结束时尝试使用2> NUL但是我得到一个例外2>此时是意外的.
非常感谢帮助/指导
您应该像管道一样解决问题.^|
简单地逃避它2^>NUL
所以你得到了
for /f "tokens=2,*" %%a in ('reg query HKLM\Software\MySoftware\1.0\MyExecutable /v "InstallDir" 2^>NUL ^| findstr InstallDir') do set InstallPath=%%b
Run Code Online (Sandbox Code Playgroud)
这是必要的,因为FOR-Loop的命令部分将被解析两次.首先在批处理文件的上下文中(2> NUL是意外的),第二次在新的cmd.exe上下文中(那里2> NUL重定向reg命令的stderr )
| 归档时间: |
|
| 查看次数: |
10414 次 |
| 最近记录: |