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)
但它删除了第一个和最后一个角色,我也只在这里看到了这个,我仍然很困惑这是如何工作的
根据您最近的澄清 - 我会做以下事情.
@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!.这是简单的字符串操作.