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

时间:2017-07-30 17:27:29

标签: batch-file cmd

在执行for命令期间,Cmd.exe正在关闭并终止批处理文件。任何人都可以帮我修改.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

使用pause命令我已经确定.bat文件运行正常,直到CMD.exe自动关闭时执行“for”命令,这会阻止批处理文件的完成。

当我在命令窗口中单独运行“for”命令(在.bat文件之外)时,它按预期运行并提供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命令期间不会关闭?对双线的反应是不寻常的,我怀疑它是这个问题的原因,但不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

您必须在变量

之前使用%%而不是%
  

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

specs