我正在使用Windows命令行腳本。我想要做的是執行由另一個命令「B」生成的命令「A」作爲它的輸出,我也可能想要在執行之前首先檢查命令是否存在。有人在這裏知道如何做到這一點? 在此先感謝!如何執行由cmd上的其他程序生成的命令?
回答
a.exe > tmp.cmd
CALL tmp.cmd
如果你解釋它正在做什麼,這將是一個更好的答案,以便人們在以後的搜索中找到它可以理解它。 –
的經典方法是做你的輸出重定向到一個腳本文件作爲Eugen Rieck suggested。可以通過寫入臨時文件夾並在完成時刪除臨時腳本來改進它。我將一個隨機數字併入臨時腳本名稱,以減少腳本的兩個同時發生的實例不會干擾彼此。
@echo off
setlocal
set script="%temp%\temp%random%.bat"
commandA >%script%
call %script%
del %script%
您的commandA可能不會產生任何輸出。執行一個空腳本不會導致任何錯誤。但是,如果你願意,你可以檢測腳本是空的通過如下:
for %%A in (%script%) do if %%~zA equ 0 echo The script is empty.
該腳本可以使用多個命令來構建:
commandA >%script%
commandB >>%script%
commandC >>%script%
或更有效地爲:
>%script% (
commandA
commandB
commandC
)
非經典方法是將命令存儲在變量中而不是腳本文件中,然後將擴展值作爲宏執行。宏的執行可能比執行腳本快得多,因爲它全部是基於內存的。但是,構建一個功能宏的規則比建立腳本更復雜。此外,宏的最大長度限制爲8191個字符(字節) - 批處理環境變量的最大長度。
甚至可以創建一個接受參數和返回值的宏!
大量的工作已經在DOSTips站點的批量宏中完成。這裏有兩個重要的參考,如果你有興趣嘗試出來:
http://www.dostips.com/forum/viewtopic.php?p=7330一個良好的開端,顯示了概念的發展,以及許多關鍵零部件
http://www.dostips.com/forum/viewtopic.php?p=11344的有很多的最新和最偉大與參數
一個簡單的方法應該在大多數情況下的宏改進語法是:
for /F "tokens=*" %%i in ('a.exe') do %%i
或
for /F "tokens=*" %%i in ('a.exe') do if "%%i" NEQ "" %%i
- 1. 從python程序執行cmd命令
- 2. 的Java執行cmd命令
- 3. 如何通過WPF應用程序在CMD中執行命令?
- 4. 如何從c#執行cmd命令#
- 5. 如何使用QProcess執行cmd命令?
- 6. 如何在java中執行cmd命令?
- 7. 如何通過java執行cmd命令
- 8. 如果從cmd執行應用程序,寫入命令行
- 9. 如何執行一個shell命令完成其他
- 10. 在cmd上執行兩個命令
- 11. C#執行cmd命令
- 12. 從vb.net執行CMD命令
- 13. C++執行CMD命令
- 14. VBScript管理CMD命令遠程執行
- 15. 如何在啓動時執行其他所有命令後執行命令?
- 16. 如何編寫程序來爲其他程序生成正確引用的命令行參數?
- 17. 在bash中執行生成的命令
- 18. 從Java執行make命令編譯其他程序
- 19. power-shell命令行在遠程計算機上執行cmd
- 20. 如何在C#中執行cmd,然後在同一個窗口中執行下面的其他命令?
- 21. java - 用於執行cmd命令的庫
- 22. 多執行命令的Docker CMD exec-form
- 23. 執行帶參數的cmd命令
- 24. 如何生成多行生成命令?
- 25. CMD在其他OS系統命令
- 26. 正在執行其他命令
- 27. 正確執行2條SQL命令而不執行其他命令的方法
- 28. 如何從Java程序執行命令
- 29. 如何在多個EC2 Windows實例上執行CMD命令?
- 30. 執行Eclipse從命令行生成javadoc
試試這個命令行幫助頁面[Windows命令](http://ss64.com/nt/),我想'CALL'會幫助你。 –