Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在windows命令(批处理文件)中重命名部分文件名_Batch File - Fatal编程技术网

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

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 (

我想替换现有文件名的某些部分。 这里的分隔符是“\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 (
   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我必须从其他文件名获取的名称,它不是预定义的。谢谢你的帮助,我终于完成了所需的工作,谢谢你在完成后指出了空格。