1

我有一个包含 400 多个 RAR、ZIP 和 7Z 文件的文件夹。我想制作一个bat文件,更改此文件夹中选定文件的扩展名,如下所示,RAR->CBR、ZIP->CBZ 和 7Z->CB7 而不重命名未选择的文件。

我尝试过:

ren %1 *.cbr

和:

ren %~n1.rar *cbr

但它不起作用。

bat文件将被放置在“发送到”菜单中。

如果可能的话,我想只使用 cmd,因为我不知道任何脚本或编程语言。

谢谢

4

1 回答 1

1

[这回答了您最初的问题,更多的是关于“所有”或多个文件。]

您可以使用FOR循环。键入for /?以获取详细信息。

首先,尝试使用 FOR 命令以使其 ECHO(打印)文件名。您可以使用它来测试您想要/认为它会做什么:

for %f in (*.rar) do echo %f

然后,要实际重命名,您需要类似以下内容:

for %f in (*.rar) do ren %f *.cbr

[根据您的编辑]:

如果您从“发送到”或其他任何地方调用批处理文件,则您的选择文件应该进入参数%1(如果有多个%2,则为等)。%3您也可以使用%*所有参数。

尝试在某处回显它,控制台或文件,以测试您是否收到这些以及正在发生的事情。将以下内容另存为批处理文件,然后尝试:

echo %1
pause

在批处理文件中,% 符号需要加倍(出于解析原因)。因此,要重命名,您可以尝试以下操作:

for %%f in (%*) do echo %%f
for %%f in (%*) do ren %%f *.cbr

另请参阅:http ://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

于 2013-10-20T09:31:50.117 回答