![](/img/trans.png)
[英]Perl script within batch script prompts for user input. How do I automatically parse that input within the batch script?
[英]How do I run a batch script from within a batch script using powershell?
如何從 powershell 中的批處理腳本中調用另一個批處理腳本。在 bash 中,我曾經使用 CALL 關鍵字完成此操作。 powershell 中是否有對應的術語?
我的問題基本上是使用批處理文件啟動開發環境,然后使用第二個批處理文件在該環境中運行一些命令。
我嘗試使用類似的東西
& Path\to\my\batchfile.bat -/c'command with spaces'
我期待它用批處理文件打開開發環境並運行提供的命令,但它只是繼續運行批處理文件而不運行其中的命令。
我假設您的用例如下:
B.bat
,A.bat
,設置B.bat
依賴的環境。# "foo" and "bar" are sample arguments for B.bat
cmd /c 'c:\path\to\A.bat && c:\path\to\B.bat foo bar'
筆記:
在這種情況下不需要call
batch-file 命令; call
只需要在一個批處理文件中以將控制權返回給調用批處理文件的方式調用另一個批處理文件。
只要A.bat
在不使用setlocal
的情況下設置其變量, B.bat
也會看到那些(環境)變量。 [1]
如果A.bat
確實使用setlocal
- 它將 scope 的變量定義限制為該批處理文件[1] - 並且您無法修改A.bat
以刪除此約束,則您的問題沒有解決方案 - 無論您是否從cmd.exe
或 PowerShell 調用。(也就是說,除非A.bat
恰好設計為接受命令行作為參數執行。)
[1] 與PowerShell不同, cmd.exe
中所有變量都是環境變量。 但是,可選的setlocal
命令允許您將 scope 這樣的變量添加到給定的批處理文件中(並且,當與endlocal
調用配對時,甚至可以添加到批處理文件的一部分)。 如需幫助,請運行setlocal /?
和endlocal /?
來自cmd.exe
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.