在windows命令(批处理文件)中重命名文件名的一部分

时间:2017-02-28 10:15:17

标签: batch-file

我想替换现有文件名的某些部分。 这里的分隔符是“_”

  

说文件名是:test_two.txt

     

要替换的文件名部分是在这里测试:

     

所以新名称将是:Pass_two.txt

我已经写了下面的内容来实现:

for  %%f  in ("C:\Test_bat\rename file part\*.txt")  do ( 
echo "%%~nxf"
SET FNAME="%%~nxf"
)

   for /f "tokens=1,* delims=_" %%a in (%FNAME%) do (
   echo %%b
   echo %%~xb 
**-- not sure why i am not getting anything in %%b**
 )

通过windows命令执行上述代码段时,我面临以下问题:

  

做(此时出乎意料

==========更新解决方案===

我错过了下面的引号 for / f“tokens = 1,* delims = _”%% a in(“%FNAME%”

1 个答案:

答案 0 :(得分:0)

这是实现目标的一种方法。 (最常见的方法是使用for循环并使用 _ 分隔符进行标记)

@Echo Off
For %%A In ("C:\Test_bat\rename file part\*_*.txt") Do (Set "_=%%A"
    SetLocal EnableDelayedExpansion
    Ren "%%A" "part_!_:*_=!"
    EndLocal)