这在批处理文件中起作用,从批处理文件旁边的所有文件名中删除字母“y”:
setlocal enableextensions enabledelayedexpansion
for /r %%A in ("*.*") do (
SET ORIGINAL_FILENAME=%%~nxA
echo.!ORIGINAL_FILENAME!
SET MODIFIED_FILENAME=!ORIGINAL_FILENAME:y=!
echo !MODIFIED_FILENAME!
REN "!ORIGINAL_FILENAME!" "!MODIFIED_FILENAME!"
)
如果我想从文件名中删除卷曲的单引号字符,则不起作用:
setlocal enableextensions enabledelayedexpansion
for /r %%A in ("*.*") do (
SET ORIGINAL_FILENAME=%%~nxA
echo.!ORIGINAL_FILENAME!
SET MODIFIED_FILENAME=!ORIGINAL_FILENAME:’=!
echo !MODIFIED_FILENAME!
REN "!ORIGINAL_FILENAME!" "!MODIFIED_FILENAME!"
)
有没有不使用 Powershell 的方法可以做到这一点?
我还尝试过一种叫做“jren.bat”的东西,将花括号字符与所有其他字符一起列出。能删除,并且它也不能删除这个卷曲的单引号字符。
干杯。
答案1
我没有办法解决这个问题,但这不再是个问题,因为我刚刚测试了批处理文件,没有删除弯单引号也没关系。我以为某个程序无法处理这个字符,但这不是进程无法完成的原因,而且这个问题已经修复了。
我会将其保留为一个开放性问题,以防万一有解决方案,因为令我烦恼的是,传统的删除该特定字符的方法对于普通字母数字字符有效,但不起作用。