#powershell
#powershell
Вопрос:
Я пытаюсь поместить следующую команду PowerShell в файл cmd для выполнения (она прекрасно работает при вызове из командной строки PS):
dir stand/*.jpg | %{$x=0} {Rename-Item $_ -NewName "Base$x.jpg"; $x }
Я получаю следующую ошибку:
‘{$ x’ не распознается как внутренняя или внешняя команда, работоспособная программа или пакетный файл.
Я попытался поставить double $$
вместо single $
и double %%
вместо single %
, но это все равно не удается.
Я пропускаю какой-то экранирование?
Ответ №1:
Вы не можете использовать команды PowerShell внутри *.cmd
файла, а не напрямую…
Поместите команду в *.ps1
файл и вызовите ее с помощью powershell, например
powershell -file "c:usersmemyscript.ps1"
Конечно, вы можете вызвать powershell непосредственно из своего cmd-файла и передать команду в качестве аргумента, но это всегда сложно, потому что вам нужно экранировать материал и т. Д. Иногда вы можете легко обойти это, используя одинарные кавычки внутри вашей команды:
powershell -Command "$x=0; dir stand/*.jpg | foreach {Rename-Item $_.FullName ('Base' $x '.jpg')}"