精華區beta EzHotKey 關於我們 聯絡資訊
※ 引述《Keroro09 (Keroro)》之銘言: : ※ [本文轉錄自 EZsoft 看板] : 作者: Keroro09 (Keroro) 看板: EZsoft : 標題: [請問] 用7z解壓縮的批次檔怎麼寫 : 時間: Sat Jul 19 18:29:48 2008 : 我的寫法是D:\7-Zip\7z.exe x %1 -o* : 測試的批次檔和壓縮檔都放在Z:\ : 可是解壓縮都會解到D:\去, : 我想應該是工作目錄在D:\的關係, : 請問我應該怎麼寫才能解壓縮到壓縮檔的所在目錄。 這裡批次檔還是壓縮檔放置的位置好像跟working directory都沒有啥關係,加個PAUSE 在最後就可以看到output長這樣: C:\Documents and Settings\HappyDenn>D:\7-Zip\7z.exe x D:\blahtest\test.7z -o* 7-Zip 4.42 Copyright (c) 1999-2006 Igor Pavlov 2006-05-14 Processing archive: D:\blahtest\test.7z Extracting test.doc Everything is Ok C:\Documents and Settings\HappyDenn>PAUSE Press any key to continue . . . 所以這裡要抓的應該是批次檔所在的資料夾才對,在batch裡面,有一個變數%0就是代表 現在執行的batch檔完整路徑,在這個變數加上~dp便可以把path跟directory抓出來,不 輸出filename的部份。所以原來的那行指令修改成這樣即可: D:\7-Zip\7z.exe x %1 -o"%~dp0" 測試出來的結果: C:\Documents and Settings\HappyDenn>D:\7-Zip\7z.exe x D:\blahtest\test.7z -o"D :\blahtest\" 7-Zip 4.42 Copyright (c) 1999-2006 Igor Pavlov 2006-05-14 Processing archive: D:\blahtest\test.7z Extracting test.doc Everything is Ok C:\Documents and Settings\HappyDenn>PAUSE Press any key to continue . . . 以上的測試方式皆為將test.7z直接拉到批次檔上面執行。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.53.142 ※ 編輯: happydenn 來自: 220.133.53.142 (07/20 07:47)
Keroro09:我瞭解了,非常感謝你的說明。 07/20 09:14
> -------------------------------------------------------------------------- < 作者: Keroro09 (Keroro) 看板: EzHotKey 標題: [請問] 用7z解壓縮的批次檔怎麼寫 時間: Sat Jul 19 18:51:25 2008 ※ [本文轉錄自 EZsoft 看板] 作者: Keroro09 (Keroro) 看板: EZsoft 標題: [請問] 用7z解壓縮的批次檔怎麼寫 時間: Sat Jul 19 18:29:48 2008 我的寫法是D:\7-Zip\7z.exe x %1 -o* 測試的批次檔和壓縮檔都放在Z:\ 可是解壓縮都會解到D:\去, 我想應該是工作目錄在D:\的關係, 請問我應該怎麼寫才能解壓縮到壓縮檔的所在目錄。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.169.87.99 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.169.87.99
ateclean:7z x [7z檔位置] -o[要放的地方] 07/19 22:36
ateclean:寫出絕對路徑試試 (ex: D:\) 07/19 22:38
Keroro09:不想設絕對路徑,因為我想解壓縮到壓縮檔的所在目錄。 07/19 23:14
Keroro09:而壓縮檔的位置是不固定的。 07/19 23:14