0

7z.exe を使用して .jar ファイルのみを抽出するバッチ ファイルを実行しようとしてい
ます。コードは次のとおりです。

set location=%cd%
set filename=%location%\outputfolder
set unzip=%location\resources

cd %unzip%
7z e -o%filename% -ir!*.jar -y "%filename%\*.zip"

しかし、例外が発生します:をerror: incorrect command line削除する-ir!*.jarと、別のエラーが発生します:をerror: cannot use absolute pathnames for this commandに変更する-o%filename%-oC:\outputfolder、動作します!!!!!! (ここに私のスクリプトがあります):

set location=%cd%
set filename=%location%\outputfolder
set unzip=%location\resources

cd %unzip%
7z e -oC:\outputfolder -y "%filename%\*.zip"

しかし、これらの機能が必要です
。どのように修正しますか?

4

1 に答える 1

1

二重引用符で試してみてください。%cd%おそらくスペースが含まれています:

7z e -o"%filename%" -i!*.jar -y "%filename%\*.zip"

ヘルプ画面からの使い方:

7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18

使用法: 7za [...] [...]
       []


  a: アーカイブにファイルを追加
  b: ベンチマーク
  d: アーカイブからファイルを削除
  e: アーカイブからファイルを抽出します (ディレクトリ名を使用せずに)
  l: アーカイブの内容を一覧表示する
  t: アーカイブの完全性をテストする
  u: アーカイブする更新ファイル
  x: 絶対パスを含む抽出ファイル

  -ai[r[-|0]]{@listfile|!wildcard}: アーカイブを含める
  -ax[r[-|0]]{@listfile|!wildcard}: アーカイブを除外します
  -bd: パーセンテージ インジケーターを無効にする
  -i[r[-|0]]{@listfile|!wildcard}: ファイル名を含める
  -m{Parameters}: 圧縮方法を設定
  -o{Directory}: 出力ディレクトリを設定
  -p{パスワード}: パスワードを設定します
  -r[-|0]: サブディレクトリを再帰します
  -scs{UTF-8 | 勝つ | DOS}: リストファイルの文字セットを設定
  -sfx[{name}]: SFX アーカイブの作成
  -si[{name}]: 標準入力からデータを読み取ります
  -slt: l (リスト) コマンドの技術情報を表示
  -so: stdout にデータを書き込みます
  -ssc[-]: 大文字と小文字を区別するモードを設定
  -ssw: 共有ファイルを圧縮
  -t{Type}: アーカイブのタイプを設定
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: オプションの更新
  -v{Size}[b|k|m|g]: ボリュームの作成
  -w[{path}]: 作業ディレクトリを割り当てます。空のパスは一時ディレクトリを意味します
  -x[r[-|0]]]{@listfile|!wildcard}: ファイル名を除外します
  -y: すべてのクエリで Yes と仮定します

ここに画像の説明を入力

于 2013-08-21T06:00:55.253 に答える