簡體   English   中英

如何在子shell中運行cmd.exe批處理文件

[英]how to run a cmd.exe batch file in a sub shell

我有一個批處理文件,我通常這樣調用:

 longjob.cmd >result.txt 2>&1

這樣可以正常工作,但腳本在執行期間更改了目錄,將我的shell保留在該目錄中 - 這是一個令人討厭的問題。

有沒有辦法在子shell中運行命令 - 同時仍然允許捕獲輸出?

我試過了

cmd longjob.cmd >result.txt 2>&1

它只是等待退出命令。

我也試過了

start longjob.cmd >result.txt 2>&1

它運行腳本,但在新窗口中,所有輸出都發送到該窗口而不是文件。

嘗試

CMD /C longjob.cmd >result.txt 2>&1

不確定它將如何處理重定向,但是CMD / C允許您告訴CMD要運行什么以及它應該在完成時退出。 (CMD / K讓你告訴它運行一些東西,但在完成時就會堅持下去。)如果在一個內部運行,它將重新使用現有的控制台窗口。

call命令可能就是你想要的。

call longjob.cmd >result.txt 2>&1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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