Я пытаюсь создать строку даты для запроса LDAP, совместимого с полем Active Directory whenChanged
. Я вытаскиваю данные AD в CSV, используя CSVDE, и вам нужен запрос LDAP, который будет фильтровать результаты для тех элементов, которые были изменены за последние 2 дня. Я кусочкам следующие FOR команды для создания первой части строки сравнения на основе нескольких примеров найти здесь на переполнение стека:Как использовать PowerShell в команде командного файла FOR?
FOR /F "usebackq" %i in (`PowerShell $date^= [DateTime]::Today.AddDays^(-2^)^; $date.ToString^('yyyyMMdd'^)`) DO SET daysAgo = %i
Это для команды отлично работает из командной строки, но бомбы внутри пакетного сценария , с последующим выходом:
:Today.AddDays(-2); was unexpected at this time.
Что вызывает у команды бомба? Благодарю.
Решено. Переменные должны иметь префикс w/'%%' внутри командного файла. –
Предложение: Если вы решили это, ответьте на свой вопрос и (когда это разрешено) примите этот ответ. (PS. Вся ваша проблема может быть решена в PSH: AD и CSV включены без внешних компонентов.) – Richard
Силовая оболочка действительно позволяет командам cmd, вы знаете, что правильно? – fftk4323