林相当新的批处理编程,我想删除我的文件名的最后一个字符。
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!
。 这是简单的字符串操作 。