雖然現在還在用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出來的內容正確,執行時卻錯誤解讀..
想請教眾大德..是否少了些什麼標記符號讓它誤解呢?
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