微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要有关在Windows中重新编写此批处理脚本以从文件名中消除我想要的字符的指导

如何解决需要有关在Windows中重新编写此批处理脚本以从文件名中消除我想要的字符的指导

@echo off
  for %%a in (A*.*) do ren "A*" "/*"

因此,上面的脚本删除了所有文件名前面的字母A。

假设我要删除文件名的最后几个字母(2个或更多字符)

一个名为Dinnermenu_FR的文件

我想摆脱文件名中的_FR或FR,我尝试修改脚本,但没有用。

@echo off
  for %%a in (*.*_FR) do ren "*FR" "/*"

如果我想保留下划线但要去除下划线,该如何重写?

解决方法

REM for each matching file do...
for %%a in (*_FR.*) do (
  REM get the part of the filename before the underscore...
  for /f "delims=_" %%b in ("%%~na") do (
    REM rename the file...
    ECHO ren "%%a" "%%b%%~xa"
  )
)

我注释了每一行,因此您应该能够理解代码。有关修饰符%%~..的帮助,请参见for /?
我还通过仅回显ren命令来撤防。故障排除后,请确保ECHO可以满足您的要求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。