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

需要有关在windows中重新编写此批处理脚本以消除文件名中需要的字符的指导吗,windows,batch-file,scripting,rename,remove,Windows,Batch File,Scripting,Rename,Remove,因此,上面的脚本删除了所有文件名前面的字母A 假设我想去掉文件名的最后几个字母(2个或更多字符) 一个名为dinneermenu\u FR的文件 我想去掉文件名中的_FR或FR,我试图修改我的脚本,但没有成功 @echo off for %%a in (A*.*) do ren "A*" "/*" 如果我想保留下划线,但去掉后面的字符,我应该如何重写 @echo off for %%a in (*.*_FR) do ren "*FR&q

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

假设我想去掉文件名的最后几个字母(2个或更多字符)

一个名为dinneermenu\u FR的文件

我想去掉文件名中的_FR或FR,我试图修改我的脚本,但没有成功

@echo off
  for %%a in (A*.*) do ren "A*" "/*"
如果我想保留下划线,但去掉后面的字符,我应该如何重写

@echo off
  for %%a in (*.*_FR) do ren "*FR" "/*"
我对每一行都做了注释,所以您应该能够理解代码。有关修饰符的帮助信息,请参见
获取/?


我还通过响应
ren
命令来“解除”该命令。排除故障后,请删除ECHO,当您确定它可以执行所需操作时。

示例中的编程语言是什么?ECHO,适用于windows,所以bash?抱歉,我只是一个初学者。我觉得它不像shell脚本。问题中的代码都是MS Windows.bat文件语法。与
bash
无关。添加一个合适的标签,专家们将查看您的问题。祝你好运。
\u FR
是文件名的一部分还是扩展名的一部分?(从你的代码判断,它是扩展名的一部分)这些文件有扩展名吗?(根据你的例子,它没有)。请澄清。愚蠢的问题,这些都在循环中吗?评论仅仅是REM PAR正确吗?是的,<代码> REM 是一个注释(源自“注释”)。请参见
rem/?
for
循环以
for….开始。。。。do(
并以相应的
结束)
(从技术上讲这并不准确,但现在就可以了)当我保存为bat文件并运行它时,它似乎不起作用。我应该只运行脚本的一部分吗?你说过脚本是一个循环,要在下划线之前去掉?我想去掉每个文件名中,在文件名末尾的每个_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"
  )
)