Batch file 如何使用批处理程序处理文件夹名称中的特殊字符(!)

Batch file 如何使用批处理程序处理文件夹名称中的特殊字符(!),batch-file,Batch File,您好,我正在使用下面的脚本根据搜索ID从文件夹中筛选XML文件,并将XML文件名返回到export.txt中 如果文件夹名称不包含特殊字符(!),则可以正常工作。在我的情况下,文件夹将有(!)。有人能帮忙吗,如何处理这件事。如何处理文件夹名称中的特殊字符 你能提供你的工作代码样本吗 { @echo关闭 echo.>export.txt set searchid=“SBDH_4539594000005_tt7x7c71fof8d9adenhr尝试此页面作为参考: 如果启用了延迟扩展,并且任何给定代

您好,我正在使用下面的脚本根据搜索ID从文件夹中筛选XML文件,并将XML文件名返回到export.txt中

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

你能提供你的工作代码样本吗

{

@echo关闭
echo.>export.txt

set searchid=“SBDH_4539594000005_tt7x7c71fof8d9adenhr尝试此页面作为参考:


如果启用了延迟扩展,并且任何给定代码行的任何位置都包含
字符,则如果需要字符串文字,则需要以下异常转义序列:

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

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

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

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

不是一个特殊的字符,除非您启用了延迟扩展,而上面没有。请为未来的读者指出这一点。链接页面不是一个很好的参考-有一些不准确之处。谢谢,我添加了延迟扩展,并使用^^作为前缀!它工作得很好。。。。{findstr/i/m%searchid%C:\ABC^^!DEF*.xml}…非常感谢…:)