Cmd.exe在執行for命令期間關閉並終止一個批處理文件。任何人都可以幫助我修改.bat文件,使其運行完成?Cmd.exe在「for」命令期間關閉
批處理文件具有以下線:
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文件之外)時,它按預期方式運行,併爲變量提供預期的響應。然而,它成功運行後返回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>
如何修改我的批處理文件,因此它不會在對命令關閉?雙線的反應是不尋常的,我懷疑這是這個問題的原因,但不知道如何解決它。
在你的批處理腳本後爲命令你'CD C:\ Program Files文件\ VeraCrypt.exe',是'VeraCrypt.exe'一個目錄的名稱?由於'Program'和'Files'之間有空格,因此您可能還想用引號括住路徑。 –
嗨 - 這是我在輸入問題時的錯誤。 .bat文件實際上說CD c:\ program files \ veracrypt(我錯誤地添加了.exe)。我在原始問題中糾正了這個問題。問題是我的.bat文件在到達此命令之前終止 - 它在運行for/f%D ....行時終止。謝謝! – Ptoger
當您從cmd窗口開始批處理時,而不是從資源管理器單擊時,則會看到錯誤消息「D無法在此處處理」。這是因爲FOR命令期望在批處理文件中有兩倍的百分比(如HELP FOR解釋) – jeb