【问题标题】:Extracting Multiple Rar/Zip Files via Right Click Batch File通过右键单击批处理文件提取多个 Rar/Zip 文件
【发布时间】:2020-08-04 00:17:19
【问题描述】:

我正在使用这段代码将我的 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-file shift right-click winrar sendto


    【解决方案1】:

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

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

    这似乎可以解决问题,我希望我不会出错。

    【讨论】:

    • 它在许多情况下都可以使用,但是,如果您选择的任何文件名/路径包含有问题的字符,它们在从 GUI 传递时并不总是双引号。
    • @Compo 感谢您的意见。对此有什么建议吗?也许在脚本之前进行名称检查?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2012-12-18
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多