瀏覽單個文章
tzoyiing
Basic Member
 
tzoyiing的大頭照
 

加入日期: May 2004
您的住址: ROC
文章: 26
再次問一下

小弟從網上搜到的批次壓縮寫法:
@echo off
set a=C:\Program Files\7-Zip\7z.exe
for %%a in (%*) do (dir /a %%a|findstr "DIR" >nul 2>nul && ("%a%" a -t7z "%%~dpa%%~na.7z" "%%~a\*") || ("%a%" a -t7z "%%~dpa%%~na.7z" %%a))

不知為何最多只能一次壓縮22個檔案,超過就會出現錯誤訊息
網上的說明實在太難,完全看不懂....暈@@"
請問該如何解決這個問題呢??

=====================================
28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令行傳遞給批處理的參數
%0 批處理文件本身
%1 第一個參數
%9 第九個參數
%* 從第一個參數開始的所有參數

批參數(%n)的替代已被增強。您可以使用以下語法:

  %~1     - 刪除引號("),擴充 %1
  %~f1     - 將 %1 擴充到一個完全合格的路徑名
  %~d1     - 僅將 %1 擴充到一個驅動器號
  %~p1     - 僅將 %1 擴充到一個路徑
  %~n1     - 僅將 %1 擴充到一個文件名
  %~x1     - 僅將 %1 擴充到一個文件擴展名
  %~s1     - 擴充的路徑指含有短名
  %~a1     - 將 %1 擴充到文件屬性
  %~t1     - 將 %1 擴充到文件的日期/時間
  %~z1     - 將 %1 擴充到文件的大小
  %~$PATH : 1 - 查找列在 PATH 環境變量的目錄,並將 %1
       擴充到找到的第一個完全合格的名稱。如果環境
       變量名未被定義,或者沒有找到文件,此組合鍵會
       擴充到空字符串

可以組合修定符來取得多重結果:

  %~dp1    - 只將 %1 擴展到驅動器號和路徑
  %~nx1    - 只將 %1 擴展到文件名和擴展名
  %~dp$PATH:1 - 在列在 PATH 環境變量中的目錄裡查找 %1,
       並擴展到找到的第一個文件的驅動器號和路徑。
  %~ftza1    - 將 %1 擴展到類似 DIR 的輸出行。
可以參照 call/? 或 for/? 看出每個參數的含意
echo load "%%1" "%%2">c:test.txt
生成的文件內容為 load "%1" "%2"
批處理文件裡,用這個格式把命令行參數輸出到文件
==========================================
 
舊 2008-07-30, 08:48 PM #12
回應時引用此文章
tzoyiing離線中