从所有子文件夹中删除 .txt 扩展名

从所有子文件夹中删除 .txt 扩展名

是否可以创建一个批处理文件来删除所有出现的 .txt 扩展名实例?我尝试了以下方法,但对我不起作用。

for f in *.txt; do mv -- "$f" "${f%.txt}"; done

谢谢您的帮助!

答案1

这确实是一个危险的命令......随意重命名树中的东西......如果使用不当,它会让你不高兴。

这是一个简单的批处理文件,它使用函数来完成您的要求。您将echo在重命名行中找到一个命令,这样您就不会意外重命名您不想重命名的内容。准备好后,删除echo并让它撕掉。

也可以不使用函数和EnableDelayedExpansion命令来完成此操作(但我不喜欢这样做)。我发现函数语法更具可读性。

@echo off

for /f "delims=" %%f in ('dir /s /b *.txt') do call :rename_textfile "%%f"
goto :EOF

:rename_textfile
:: remove the echo command below when it works like you want it to.
echo rename "%~1" "%~dpn1"
goto :EOF

相关内容