繁体   English   中英

Cmd.exe在“ for”命令期间关闭

[英]Cmd.exe closes during “for” command

Cmd.exe在执行for命令期间正在关闭并终止批处理文件。 谁能帮助我修改.bat文件,使其运行完毕?

批处理文件具有以下几行:

start "" "autohotkey.exe" "p:\script.ahk"

timeout /t 3

cd C:\windows\system32\wbem

for /f %D in ('wmic volume get DriveLetter^, Label ^| find "EHD_BACKUP"') do set myDrive=%D

timeout /t -1

cd C:\Program Files\VeraCrypt

使用暂停命令,我确定.bat文件可以正常运行,直到CMD.exe自动关闭时执行“ for”命令为止,这将阻止批处理文件完成。

当我自己在命令窗口中(在.bat文件之外)运行“ for”命令时,它按预期运行,并为myDrive变量提供了预期的响应。 但是,它在成功运行后会返回2条提示-如下:

C:\windows\system32>for /f %D in ('wmic volume get DriveLetter^, Label ^| find "EHD_BACKUP"') do set myDrive=%D

C:\windows\system32>set myDrive=K:

C:\windows\system32>

如何修改批处理文件,使其在for命令期间不会关闭? 对for的双线响应很不寻常,我怀疑这是此问题的原因,但不知道如何解决。

您必须在变量前使用%%而不是%

{%变量| %% variable}:必需。 表示一个可替换的参数。 使用%variable从命令提示符执行。 使用%% variable在批处理文件中执行for命令。 变量区分大小写,并且必须用字母值表示,例如%A,%B或%C。

https://technet.microsoft.com/en-us/library/bb490909.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM