請教Bat (Batch) 檔的問題?

雖然現在還在用DOS Command的人越來越少了,
不過有時還是會用到這東西....

先說明一下環境..
資料夾結構如下:
─┬─FolderA─┬─FolderA1─┬─FileA
 │         │          ├─FileB
 │         │          └─FileC
 │         │
 │         └─FolderA2─┬─FileA
 │                    ├─FileB
 │                    └─FileC
 │
 └─FolderB─┬─FolderB1─┬─FileA
           │          ├─FileB
           │          └─FileC
           │
           └─FolderB2─┬─FileA
                      ├─FileB
                      └─FileC

我寫了一支bat檔,目的是把FolderA和FolderB進一層的A1 A2 B1 B2都壓成各自的壓縮檔,共兩行:
1 SET Current_Date=%date:~2,2%%date:~5,2%%date:~8,2%
2 for /F %i IN ('dir /b /a:d') DO for /F %j IN ('dir %i /b /a:d') DO IF NOT %j==%Current_Date% rar a -m5 %i\%j %i\%j


奇怪的是這兩行我用複製貼上時都是可以運作的;
但寫在bat裡執行時就出錯..
人說發文不附圖此風不可長,所以截個訊息如下:

D:\Log>type CompressLogDaily.bat
SET Current_Date=%date:~2,2%%date:~5,2%%date:~8,2%
for /F %i IN ('dir /b /a:d') DO for /F %j IN ('dir %i /b /a:d') DO IF NOT %j==%Current_Date% rar a -m5 %i\%j %i\%j

D:\Log>CompressLogDaily.bat

D:\Log>SET Current_Date=090803
這個時候不應有 DO。

D:\Log>for /F d') DO for /F i /b /a:d') DO IF NOT Current_Datei\i\j


從訊息中可以看到,明明type出來的內容正確,執行時卻錯誤解讀..

想請教眾大德..是否少了些什麼標記符號讓它誤解呢?
2009-08-03 11:48 發佈
文章關鍵字 bat batch 問題
DOS好久以前的東西,現在都忘光了,你有試過用call指令嗎?
比方說寫個test.bat內容為
call CompressLogDaily.bat
執行test.bat
改成底下看看
SET Current_Date=%date:~2,2%%date:~5,2%%date:~8,2%
for /F %%i IN ('dir /b /a:d') DO for /F %%j IN ('dir %%i /b /a:d') DO IF NOT %%j==%Current_Date% rar a -m5 %%i\%%j %%i\%%j
下面的答案應該會更正確.
bakulu wrote:
DOS好久以前的東西,現在都忘光了,你有試過用call指令嗎?
比方說寫個test.bat內容為
call CompressLogDaily.bat
執行test.bat



henyuamos wrote:
改成底下看看
SET Current_Date=%date:~2,2%%date:~5,2%%date:~8,2%
for /F %%i IN ('dir /b /a:d') DO for /F %%j IN ('dir %%i /b /a:d') DO IF NOT %%j==%Current_Date% rar a -m5 %%i\%%j %%i\%%j


用了hanyuamos的方法,成功了...
感謝!

也感謝bakulu的回應,雖然我沒試....
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?