0

您好我正在使用以下脚本根据搜索 ID 从文件夹中过滤 XML 文件,并将 XML 文件名返回到 export.txt。

如果文件夹名称不包含特殊字符 (!),它可以正常工作。在我的情况下,文件夹将有(!)。谁能帮忙,如何处理这个sinario。如何处理文件夹名称中的特殊字符。

您能否提供您的示例工作代码?

{

@echo off
echo. >export.txt
set searchid="<sh:InstanceIdentifier>SBDH_4539594000005_tt7x7c71fof8d9adenhr<"
for /f %%a in ('findstr /i /m %searchid% C:\ABC!DEF\*.xml') do (
  echo %%a >>export.txt
) 

}

4

2 回答 2

1

如果启用了延迟扩展并且任何给定的代码行中的!任何位置都包含一个字符,那么如果您想要一个字符串文字,则需要以下不寻常的转义序列:

unquoted ! = ^^!
quoted !   = ^!
unquoted ^ = ^^^^
quoted ^   = ^^

如果启用延迟扩展但行不包含!,则^正常转义:

unquoted ^ = ^^
quoted ^   = ^

如果延迟扩展被禁用,则!不需要转义,并^正常转义:

unquoted ! = !
quoted !   = !
unquoted ^ = ^^
quoted ^   = ^
于 2013-09-24T11:00:52.017 回答
1

试试这个页面作为参考:http ://www.robvanderwoude.com/escapechars.php

! = ^^!
于 2013-09-24T02:15:38.670 回答