【问题标题】:renaming multiple files extensions in a Windows batch script在 Windows 批处理脚本中重命名多个文件扩展名
【发布时间】:2014-06-16 22:11:02
【问题描述】:

我需要递归搜索目录,当找到一个特定名称的文件时,然后重命名它。关键是我以后还需要能够重命名它。

for /r %%x in (*.aspx) do move %%x %%x.txt

上述工作继续进行,但我无法制定语法将其重命名。

我的下一个想法是不要添加扩展名,也许可以重命名扩展名,但我不知道怎么做。

任何人都有任何想法。我被dos搜索过的从来都不是我的好朋友。

如果这更容易的话,我会很高兴。

【问题讨论】:

  • 你能澄清一下“以后可以重命名”是什么意思吗?
  • 如果您正在寻找 vbs 解决方案,请使用 Google 或 stackoverflow.com/questions/22636917/… 获取初始指针。 VBScript(或 JScript)语言更具表现力,并且可以更好地构建代码。然后,您将使用 cscript.exe 将 vbs 解决方案包含到您的批处理文件中

标签: windows batch-file


【解决方案1】:

注意:这些是在批处理文件中使用的命令行,当直接从命令提示符执行它们时,请使用 %x 而不是 %%x

这将重命名 *.apsx 以将 .txt 添加到末尾。

for /r %%x in (*.aspx) do move "%%x" "%%x.txt"

编辑:下面有一个用于处理递归重命名的更改,但被忽略了。

这将重命名 *.apsx 以从末尾删除 .txt

for /r %%x in (*.aspx.txt) do move "%%x" "%%~dpx%%~nx"

【讨论】:

  • @MichaelFreidgeim 你错了。你把它放在哪个批处理文件中? i.imgur.com/eA51k2g.png 这就是你在控制台上看到的,没有回显。
  • 您的答案使用 %%x,但在图像中您使用了 %x。单一百分比有效。
  • @MichaelFreidgeim 不,迈克尔,批处理脚本在运行时会在控制台上显示单个百分比,但其中有两个百分比符号。直接从命令提示符运行时使用单个百分比。我收集到您在编辑中注意到了这些内容,并且主题行提到了相关的批处理文件。我的回复通常不像我在这里那样简洁,并且我理解我的评论很少。塔。请注意我在上面所做的脚本的更正,并且我更突出地包含了您的信息。
【解决方案2】:

您似乎想以某种方式“隐藏”文件。这可以通过从文件名中去除扩展名来完成。不幸的是,这不能在 for 循环中“内联”完成,所以你需要这样的东西。

for /r %%x in (*.aspx) do call :disable %%x

goto :eof

:disable
  ren %1 %~n1.old
  goto :eof

子例程是必需的,因为您不能在for 循环内写入 %~nX。假设for 循环找到了一个文件index.aspx,那么子程序中的重命名将扩展为:

ren c:\some\dir\where\the\files\are\stored\index.aspx index.old

您可以将“旧”和“新”扩展名作为参数传递

for /r %%x in (*.%1) do call :disable %%x %2

goto :eof

:disable
  ren %1 %~n1.%2
  goto :eof

假设您将上述内容存储在名为“my_rename.cmd”的批处理文件中,您可以运行

my_rename aspx old

“隐藏”文件。

要再次“启用”它们,您可以运行:

my_rename old aspx

如果您的文件存储在包含空格的目录中,您需要将ren %1 %~n1.%2 更改为ren "%1" %~n1.%2

【讨论】:

    【解决方案3】:

    可能重复Changing all files' extensions in a folder with one command on Windows

    但它会是这样的

    ren *.X *.Y
    

    其中“X”是原始扩展名,“Y”是您要更改的扩展名。

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      相关资源
      最近更新 更多