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

Xan*_*ane 3 windows filenames rename batch-file

我是批处理编程的新手,我想删除我的文件名中的最后一个字符.

10_myfile_12345_6789.txt
11_myfile_12345_0987.txt
Run Code Online (Sandbox Code Playgroud)

我想删除我的文件名的最后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
Run Code Online (Sandbox Code Playgroud)

但它删除了第一个和最后一个角色,我也只在这里看到了这个,我仍然很困惑这是如何工作的

unc*_*eat 8

根据您最近的澄清 - 我会做以下事情.

@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
Run Code Online (Sandbox Code Playgroud)

这将改变您的示例

10_myfile_12345_6789.txt
11_myfile_12345_0987.txt
Run Code Online (Sandbox Code Playgroud)

10_myfile_12345_.txt
11_myfile_12345_.txt
Run Code Online (Sandbox Code Playgroud)

如果你想删除尾随_只需更改!filename:~0,-4!!filename:~0,-5!.这是简单的字符串操作.