0

我正在尝试使用批处理脚本解压缩文件。我想遍历一个文件夹及其子文件夹,每当有 .rar 文件时,我希望它将其内容 rar 到与 .rar 文件所在的文件夹相同的文件夹中。我正在使用 unrar.exe 来执行此操作,它需要我在 raring 时指定输出文件夹。如果我没有指定任何文件夹,它会将其保存到“当前文件夹”,即 batfile 的文件夹。

这是我的代码:

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 回答