2012-04-27 20 views
1

我有一個用於在批處理文件中循環:批量循環變量,不能cd到每個?

@echo off 
set logpath1=C:\path\to\first\log 
set logpath2=C:\path\to\second\log 
FOR %%G IN (%logpath1% %logpath2%) DO (
    pushd %%G 
    pushd ..\ 
    for %%D IN (%CD%) DO SET "dirname=%%~nxD" 
    popd 
    echo Will prefix files in %%G with %supername% 
    :: do operations. 
    popd 
) 

然而,這似乎並沒有改變我的工作目錄。如果我運行從

C:\tmp\path\to 

腳本然後我得到

Will prefix files in C:\path\to\first\log with tmp 
Will prefix files in C:\path\to\second\log with tmp 

我的目的是要壓縮的日誌文件在多個目錄。我試過chdir,cd/d和&〜pd0而不是%CD%,然後搜索高低。任何人都可以告訴我爲什麼這不起作用?

回答

2

​​

在您的批處理文件的頂部,並在循環使用!CD!代替%CD%。根據%supername%的設置,您可能還需要使用!

+0

啊哈!我查了一些關於延遲擴展的文檔,但我想我沒有放棄理解。謝謝喬! – Dan 2012-04-27 21:34:52