如何在批处理文件FOR命令中使用PowerShell?

时间:2013-05-07 03:15:59

标签: powershell batch-file active-directory

我正在尝试为与Active Directory whenChanged字段兼容的LDAP查询生成日期字符串。我正在使用CSVDE将AD数据拉入CSV并需要LDAP查询,该查询会将结果过滤到过去2天内更改的项目。我将以下FOR命令拼凑在一起,根据Stack Overflow上的一些示例生成比较字符串的第一部分:

FOR /F "usebackq" %i in (`PowerShell $date^= [DateTime]::Today.AddDays^(-2^)^; $date.ToString^('yyyyMMdd'^)`) DO SET daysAgo = %i

这个FOR命令在命令提示符下工作正常,但在批处理脚本中有炸弹,带有以下输出:

:Today.AddDays(-2); was unexpected at this time.

导致命令轰炸的原因是什么?感谢。

1 个答案:

答案 0 :(得分:2)

我正在偷他的果汁......批处理文件中的FOR迭代器变量需要有一个双百分号,%%。所以,你的行看起来像这样

FOR /F "usebackq" %%i in (<snipped-powershell-command>) DO SET daysAgo=%%i