在执行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命令期间不会关闭?对双线的反应是不寻常的,我怀疑它是这个问题的原因,但不知道如何解决它。
答案 0 :(得分:0)
您必须在变量
之前使用%%而不是%{%variable | %% variable}:必需。表示可替换的参数。使用%variable从命令提示符执行。使用%%变量在批处理文件中执行for命令。变量区分大小写,必须用alpha值表示,例如%A,%B或%C。