如何在批处理文件中使用PowerShell执行命令?
我正在尝试为与Active Directory如何在批处理文件中使用PowerShell执行命令?,powershell,batch-file,active-directory,Powershell,Batch File,Active Directory,我正在尝试为与Active DirectorywhenChanged字段兼容的LDAP查询生成日期字符串。我正在使用CSVDE将广告数据拉入CSV,并需要一个LDAP查询,该查询将过滤结果,以查找在过去2天内更改的项目。我将以下FOR命令拼凑在一起,根据这里关于堆栈溢出的几个示例生成比较字符串的第一部分: FOR /F "usebackq" %i in (`PowerShell $date^= [DateTime]::Today.AddDays^(-2^)^; $date.ToString^('
whenChanged
字段兼容的LDAP查询生成日期字符串。我正在使用CSVDE将广告数据拉入CSV,并需要一个LDAP查询,该查询将过滤结果,以查找在过去2天内更改的项目。我将以下FOR命令拼凑在一起,根据这里关于堆栈溢出的几个示例生成比较字符串的第一部分:
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.
是什么导致命令爆炸的?谢谢。我在偷他的果汁<批处理文件中迭代器变量的code>需要有一个双百分号,
%%
。那么,你的线路应该是这样的
FOR /F "usebackq" %%i in (<snipped-powershell-command>) DO SET daysAgo=%%i
FOR/F“usebackq”%%i in()DO SET daysAgo=%%i
已解决。变量需要在批处理文件中加前缀w/%%
。建议:如果您已解决此问题,请回答您自己的问题,并(在允许的情况下)接受该答案。(顺便说一句,你所有的问题都可以在PSH中解决:AD和CSV都包括在内,没有外部组件。)Power shell允许cmd命令,你知道吗?