从Windows中删除我的文件名中的最后一个字符

林相当新的批处理编程,我想删除我的文件名的最后一个字符。

10_myfile_12345_6789.txt 11_myfile_12345_0987.txt 

我想删除我的文件名的最后4位数字我怎么能做到这一点?

我已经试过了

 @echo off setlocal enabledelayedexpansion set X=3 set FOLDER_PATH= pushd %FOLDER_PATH% for %%f in (*) do if %%f neq %~nx0 ( set "filename=%%~nf" ren "%%f" "!filename!%%~xf" ) popd PAUSE 

但它删除了第一个和最后一个字符,我只在这里看到这一点,即时通讯仍然很困惑,这是如何工作的

随着你最近的澄清 – 我会做以下。

 @echo off setlocal enabledelayedexpansion set FOLDER_PATH=C:\Some\Path\ for %%f in (%FOLDER_PATH%*) do if %%f neq %~nx0 ( set "filename=%%~nf" ren "%%f" "!filename:~0,-4!%%~xf" ) PAUSE 

这将改变你的例子

 10_myfile_12345_6789.txt 11_myfile_12345_0987.txt 

 10_myfile_12345_.txt 11_myfile_12345_.txt 

如果你想删除尾部_简单地改变!filename:~0,-4! to !filename:~0,-5! 。 这是简单的字符串操作 。