我正在编写一个脚本来压缩旧文件,使用forfiles进行循环,使用7za进行压缩。我一直在为如何处理文件名中的空格而苦苦挣扎,虽然我找到了一个似乎可行的解决方案,但不明白为什么我对将其部署到生产环境感到紧张。这是似乎有效的命令:forfiles-p%rootLogDir%-s-m*.log-d-14-c"cmd/c7zaa-tzip"""@PATH\@FILE-%date%.zip""""""@PATH\@FILE""""请注意,7za的路径和文件名参数有3组(是的,三组)引号。一组引号什么都不做,两组引号导致脚本将目录中的每个文件(而不是指定的文件)添加到存档中,而三组似乎有效。谁能
我需要使用forfiles命令从Windows命令提示符生成一个xml。到目前为止我还没有,但是变量包含引号而且我不想要它......这是我当前的命令:%FF_CMD%/c"cmd/cif@isdir==TRUEecho^^@fname^^"结果是:"DIRNAME"但我想要这个:DIRNAME有什么想法吗?提前致谢 最佳答案 您可以创建额外的批处理文件,例如“echoxml.bat”。这将允许使用~符号来去除引号:@echooffecho^^%~1^^然后在forfiles中使用批处理文件:%FF_CMD%/c"cmd/cif@i
在以下WindowsServer2k3批处理命令中,我遗漏了一些关于转义字符串或空格的内容(很明显?)。FORFILES-m*.wsp-c"CMD/CC:\Program^Files\Common^Files\Microsoft^Shared\web^server^extensions\12\bin\stsadm.exe^-o^addsolution^-filename^@FILE"导致如下错误'C:\ProgramFiles\CommonFiles\MicrosoftShared\webserverextensions\12\bin\stsadm.exe-oaddsolution-f
以下命令适用于一种类型的文件,forfiles-p"C:abc\del"-s-m*.exe-d-70-c"cmd/cecho@path"是否可以过滤多个文件扩展名?*.exe,*.dll,*.xyz? 最佳答案 虽然没有我希望的那么好,但是这个oneliner可以帮上忙。但是请注意,您不能将*用作过滤器,因为在这种情况下IN函数会开始选择文件。for%Gin(.exe,.dll,.xyz)doforfiles-p"C:abc\del"-s-m*%G-d-70-c"cmd/cecho@path"二手this供引用。