我正在尝试为与Active Directory whenChanged字段兼容的LDAP查询生成日期字符串。我正在使用CSVDE将AD数据拉到CSV中,需要一个LDAP查询,该查询将过滤结果到那些在过去2天内更改的项目。我根据在Stack Overflow上找到的几个示例,拼凑了以下FOR命令,以生成比较字符串的第一部分:
FOR /F "usebackq" %i in (`PowerShell $date^= [DateTime]::Today.AddDays^(-2^)^; $date.ToString^('yyyyMMdd'^)`) DO SET days
2^>^&1`) DO @( rem do other stuff延迟扩展是启用的,因为源路径可能包含特殊字符,如反引号、百分号、感叹号和^转义符。问题出现了如何处理双百分比参数%%X,如何在不展开的情况下将其传递给另一个变量。如果DE在感叹号上,sings将被视为变量,这将导致一系列奇怪的错误。问题归结为如何安全地将数据从参数的双百分比传递到正常的%variable%中,这样数据就可以安全地通过延迟扩展。
我有一个简单的for循环,并希望在下面的脚本中为dir中的每个文件运行一个命令。每当我运行它时,我都会得到这样的错误:"INST_PATH\bin\testBin.exe在这个时候是意外的。“另外,如果我想给一个变量一个默认值,如果没有在命令行中提供,我该怎么做?例如,如果用户没有给出目录,而我想假设它是当前目录,我该如何在脚本中做到这一点呢?set OutDir=%2for %i in (*.*) do %INST_PATH%\bin\testBin.exe -I=. -