[英]How to run a command in Windows batch script?
我正在嘗試通過 Windows 批處理腳本將文件名動態提供給命令。 這是我的代碼,
@echo off
set /p path="Enter the project path: "
for /R "%path%" %%I in (*.java) do (java -classpath MyCheckStyle.jar;checkstyle-5.6-all.jar com.puppycrawl.tools.checkstyle.Main -c custom_check.xml %%I)
pause
基本上,我想從任何給定目錄中獲取所有 .java 文件,並將這些 java 文件提供給將為每個文件運行的另一個命令。 代替%%I
我試圖動態提供 java 文件。 但它說java命令無法識別。
如果我在批處理文件中單獨使用java -classpath MyCheckStyle.jar;checkstyle-5.6-all.jar com.puppycrawl.tools.checkstyle.Main -c custom_check.xml path/filename.java
。 它工作正常。
我也嘗試了以下方法,
@echo off
set i=-1
set /p path="Enter the project path: "
for /R "%path%" %%I in (*.java) do (
set /a i=!i!+1
set filenames[!i!]=%%I
)
set lastindex=!i!
for /L %%f in (0,1,!lastindex!) do (
java -classpath MyCheckStyle.jar;checkstyle-5.6-all.jar com.puppycrawl.tools.checkstyle.Main -c custom_check.xml !names[%%f]!
)
pause
但它再次說java命令無法識別。
這里做錯了什么? 為什么我不能動態傳遞 .java 文件名?
你用項目路徑“path”命名你的變量,這很糟糕,因為只要你這樣做
set /p path="Enter the project path: "
您覆蓋了系統“路徑”,然后 Windows 找不到您的“java.exe”。 將其重命名為 project_path:
set /p project_path="Enter the project path: "
for /R "%project_path%" %%I in .......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.