[英]second bat is not executed PowerShell script
下面的 bat 文件被 PowerShell 腳本調用,但是只有 bat1.bat 被執行,其他的 bat2.bat 和 last.bat 沒有被調用
#first bat
Start-Process "C:\bat1.bat" -Wait
#run second bat
Start-Process "C:\bat2.bat" -Wait
#run last bat
cmd.exe /c '\last.bat'
非常感謝您的支持
嘗試使用這個:
Set-Location C:\temp
Start-Process .\bat1.bat -Wait
Write-Host "bat1.bat DONE"
Start-Process .\bat2.bat -Wait
Write-Host "bat2.bat DONE"
cmd /c .\last.bat
Write-Host "last.bat DONE"
我制作了以下 .bat 文件:
bat1.bat
@ECHO OFF
ECHO bat1
PAUSE
bat2.bat
@ECHO OFF
ECHO bat2
PAUSE
最終的.bat
@ECHO OFF
ECHO final
當 PS 腳本運行時,所有 3 個都按預期運行。
如果上一個過程完成,則放置 Write-Host 將顯示在控制台中。
編輯:
之前沒有多解釋,不好意思。
您的問題是 .bat 文件之一沒有完成。
您擁有的語法應該運行 bat1.bat 和 bat2.bat。 "cmd.exe /c "\last.bat" 會失敗。如果你不打算設置 c: 的路徑,你需要 "c:\last.bat"。如果你這樣做了,你會想要 " .\last.bat"
為了確保您的腳本能夠正常工作,我制作了 3 個基本的 .bat 文件,其功能僅用於記錄與它們關聯的字符串。 這樣做可以保證如果出現任何問題,那是 PS 代碼而不是 .bat 代碼。
在驗證您的腳本可以運行后,我制作了我提供的腳本。 使用 Set-location 不是必需的,但我認為它使代碼看起來更干凈。 每個進程之后的 Write-Host 都登錄到腳本正在移動到下一個進程的 PS 控制台。
為什么不試試
CALL "C:\bat1.bat"
CALL "C:\bat2.bat"
\last.bat
並完全避免Powersmell?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.