2013-05-07 141 views
4

我正在嘗試爲與Active Directory whenChanged字段兼容的LDAP查詢生成日期字符串。我正在使用CSVDE將AD數據轉換爲CSV格式,並且需要一個LDAP查詢,以便將結果過濾爲最近2天內更改的項目。我拼湊以下FOR命令生成基於幾個例子比較字符串的第一部分,在這裏發現的堆棧溢出:如何在批處理文件FOR命令中使用PowerShell?

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

解決。變量需要在批處理文件中以w /'%%'作爲前綴。 – 2013-05-07 03:39:54

+4

建議:如果你已經解決了這個問題,那麼回答你自己的問題,並且(如果允許的話)接受這個答案。 (PS。所有問題都可以在PSH中解決:AD和CSV都包含在外部組件中。) – Richard 2013-05-07 08:17:25

+0

電源外殼確實允許cmd命令,您知道嗎? – fftk4323 2013-06-10 13:37:20

回答

2

我正在偷他的果汁...... FOR批處理文件中的迭代器變量需要有一個雙重百分號,%%。所以,你的線看起來像這樣

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