首页 > 解决方案 > 通过右键单击批处理文件提取多个 Rar/Zip 文件

问题描述

我正在使用这段代码将我的 cbr/cbz 文件提取到文件夹中。由于我有一个漫画阅读器,默认情况下会打开这些文件。我制作了这个批处理文件并将其放在下面shell:sendto所以我可以右键单击一个 cbr 文件并将其解压缩到那里的一个新文件夹中。它一次只适用于一个文件。

cd /d %~dp1

"C:\Program Files\WinRAR\WinRAR.exe" x %1 "%~n1\"

它适用于单个文件。但我喜欢在同一个文件夹中选择 5-6 个文件,右键单击它们并选择发送到我的批处理命令并将所有文件提取到它们的特定文件夹中。

所以我为它做了这个批处理文件:

cd /d %~dp1

:start

"C:\Program Files\WinRAR\WinRAR.exe" x %1 "%~n1\"
SHIFT
if not "%1"=="" (goto :start)

pause

但它不起作用。如何让我的批处理文件识别我在右键单击时选择的文件?

编辑:

我想也许是目录更改导致了代码的错误,所以我删除了那部分。仍然不适用于多个文件,一个很好。

:start

"C:\Program Files\WinRAR\WinRAR.exe" x %1 "%~dp1%~n1\"
SHIFT
if not "%1"=="" (goto :start)

pause

标签: batch-fileshiftright-clickwinrarsendto

解决方案


我想我明白了,如果您有其他建议,请说出来。

for %%A in (%*) do "C:\Program Files\WinRAR\WinRAR.exe" x %%A "%%~dpA%%~nA\"
pause

这似乎可以解决问题,我希望我不会得到任何错误。


推荐阅读