我想使用/ as分隔符从变量中提取标记。 我用过这个::
set fileinput=properties\iam\self_iam_properties.xml
for /f "tokens=*delims=\" %%a in (%fileinput%) do @echo %%a
给了我以下错误:
The system cannot find the file properties\iam\self_iam_properties.xml.
为什么要搜索文件,我只需要使用变量中的值。我不想从文件中获取值。
同样在解析之后,我希望创建一个名为self_iam_parsedoutput.txt
的文件,因此我需要从输入文件名中提取self_iam_
。如何处理?
答案 0 :(得分:0)
将%fileinput%
放在双引号中,将其视为字符串。
for /f "tokens=*delims=\" %%a in ("%fileinput%") do @echo %%a
请注意,因为您正在使用tokens=*
,所以它实际上不会分成多个变量。如果您希望路径的每个部分都获得自己的变量,则可以使用类似tokens=1-26
在for /f
中转义变量的第二种方法是运行输出变量的命令。
for /f %a in ('echo.%variable%')
如果您遇到双引号问题,此表单非常有用。
至于文件名更改,如果输入文件始终为xyz_properties.xml
且输出始终为xyz_parsedoutput.txt
,则您可以使用%variable:old=new%
set inputfile=self_iam_properties.xml
set outputfile=%inputfile:properties.xml=parsedoutput.txt%