簡體   English   中英

第二個 bat 未執行 PowerShell 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM