0

バッチスクリプトでファイルを解凍しようとしています。フォルダーとそのサブフォルダーを反復処理したいのですが、.rar ファイルがあるときはいつでも、そのコンテンツを .rar ファイルと同じフォルダーに rar したいのです。これを行うには unrar.exe を使用していますが、必要ですレアリング時の出力フォルダを指定してくれます。フォルダーを指定しないと、バットファイルのフォルダーである「現在のフォルダー」にrarsされます。

これは私のコードです:

FOR /R %dir_of_file% %%X in (*.rar) do (

"%unrarexe_path%\unrar.exe" x -y -r %%X {set unrarfolder path}

)

for ループの繰り返しのたびに、探している現在のサブディレクトリへのパスを保存する方法はありますか?

何かのようなもの:

set unrar_to_here={haxcommand that will give me current subdirectory in for-loop}

私の質問が理解できることを願っています:)

4

2 に答える 2

1

これはあなたが望むことをしますか?現在の作業ディレクトリを rar ファイルを含むディレクトリにして、現在のフォルダーに展開するだけです。ただし、 unrar コマンドの構文についてはわかりません。私はそれをあなたに任せます。:)

FOR /R %dir_of_file% %%X in (*.rar) do (

    pushd "%%~dpX"
    "%unrarexe_path%\unrar.exe" x -y -r %%X
    popd

)
于 2013-03-20T11:59:43.100 に答える
1

これを試して。ファイルはアーカイブと同じフォルダーに配置されます。

@echo off &setlocal
FOR /R %dir_of_file% %%X in (*.rar) do (
    "%unrarexe_path%\unrar.exe" x -y -r "%%~X" "%%~dpX"
)
endlocal
于 2013-03-20T12:55:54.287 に答える