Batch file 在windows命令(批处理文件)中重命名部分文件名
我想替换现有文件名的某些部分。 这里的分隔符是“\u1” 假设文件名为:test_two.txt 要替换的文件名部分是此处的测试: 所以新名称将是:Pass_two.txt 我在下面写了一些东西来实现:Batch file 在windows命令(批处理文件)中重命名部分文件名,batch-file,Batch File,我想替换现有文件名的某些部分。 这里的分隔符是“\u1” 假设文件名为: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 (
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命令promt执行上述代码段时,我面临以下问题:
在这个时候,这是出乎意料的
==========更新解决方案===
我错过了下面的报价
对于/f“tokens=1,*delims=%%a in(%FNAME%”)以下是实现目标的一种方法。(最常见的方法是使用for循环并使用
\ucode>分隔符进行标记)
@Echo关闭
对于“%C:\Test\u bat\rename file part\*.*.txt”中的%%A,请执行(设置“\=%A”
SetLocal EnableDelayedExpansion
Ren“%%A”部分:**
(本地)
在do
和左括号(
)之间需要一个空格。此外,您还可以执行Ren“C:\Test\u bat\rename file part\Test.*.txt”“pass.*.txt”
@Compo我必须从其他文件名获取的名称,它不是预定义的。谢谢你的帮助,我终于完成了所需的工作,谢谢你在完成后指出了空格。