您好我使用以下脚本根据搜索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
)
}
答案 0 :(得分:1)
尝试此页面作为参考:http://www.robvanderwoude.com/escapechars.php
! = ^^!
答案 1 :(得分:1)
如果启用了延迟扩展并且任何给定的代码行在其中的任何位置包含!
字符,那么如果您需要字符串文字,则需要以下不常见的转义序列:
unquoted ! = ^^!
quoted ! = ^!
unquoted ^ = ^^^^
quoted ^ = ^^
如果启用了延迟展开但行不包含!
,则^
会正常转义:
unquoted ^ = ^^
quoted ^ = ^
如果停用了延迟展开,那么!
不需要转义,^
会正常转义:
unquoted ! = !
quoted ! = !
unquoted ^ = ^^
quoted ^ = ^