2016-04-22 126 views
0

我試圖調用運行for循環批處理文件並調用第二個腳本:for循環窗口cmd並批處理文件無法正常工作

for /f "usebackq" %%i in (`dir/b /o:d %partionHome%\tmp\queue\*.t~#`) do %partitionHome%\conf\SQLLoader\SQL_Loader_%DSNname%\Script.bat %1 %2 %3 %4 %5 %6 %7 %%i %has_prefix% %partionHome% 

Script.bat從來沒有運行;我試過添加,但我相信這被忽略FOR /F,我只是無法調用腳本的循環。所有參數都可用,路徑等是正確的?

+0

當您從命令行運行它時,這是否正常工作? '%partitionHome%\ conf \ SQLLoader \ SQL_Loader_%DSNname%\ Script.bat%1%2%3%4%5%6%7 %% i%has_prefix%%partionHome%'我會想象'%1%2 ...%7'不正確,因爲這些是無意義的論點......除非這是一個更大的腳本的一部分,並且你遺漏了傳遞給這個子程序的參數。 –

+0

@Stephan - 他有USEBACKQ選項,所以back-ticks是正確的。 – dbenham

回答

0

DIR命令可能不會返回任何東西,所以FOR/F無法迭代。

在我看來像你有一個拼寫錯誤:%partionHome%%partitionHome%

此外,請確保您的變量partitionHomeDSNname正確定義。

的CALL肯定是需要的(一旦你解決其他問題)

最後,你應該用引號括起來你的路,萬一有值內空間和/或毒物字符。

for /f "usebackq" %%i in (`dir/b /o:d "%partitionHome%\tmp\queue\*.t~#"`) do call "%partitionHome%\conf\SQLLoader\SQL_Loader_%DSNname%\Script.bat" %1 %2 %3 %4 %5 %6 %7 "%%I" %has_prefix% "%partitionHome%"