【问题标题】:Change extension of selected files with CMD使用 CMD 更改所选文件的扩展名
【发布时间】:2013-10-28 20:08:01
【问题描述】:

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

我试过了:

ren %1 *.cbr

和:

ren %~n1.rar *cbr

但它不起作用。

bat 文件将被放置在 Send To 菜单中。

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

谢谢

【问题讨论】:

    标签: cmd zip batch-processing file-extension rar


    【解决方案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

    【讨论】:

    • 使用for %%f in (*.rar) do ren "%%f"*.cbrfor %%f in (*.zip) do ren "%%f" *.cbz进行测试仍然会影响所有具有相同扩展名的文件,而不仅仅是我在bat文件中拖动的选定文件
    • 是的,您最初提出了“重命名所有”的问题。尝试进一步向下尝试%* 版本,看看您是否可以拾取您调用批处理文件时使用的选定文件/参数。你也可以使用echo 来测试你在做什么。 这东西可能会出错,请确保您不会意外重命名 400 个重要文件!
    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多