1

Я запускаю командный файл в PowerShell. Он вызывает другую программу для создания группы карт, которые выводит в подпапку "GRD".

Затем я хочу переименовать файлы в папке GRD, добавив пробелы "", где есть подчеркивания "_", поэтому я использую команду PoweShell:

DIR | Rename-Item -NewName {$ .name -replace " ", ""}

Эта строка работает нормально, если я ввожу ее в командное окно PS после запуска моего командного файла. Но есть ли способ, которым я мог бы включить эту строку в конец моего пакетного файла? Я пробовал:

CD GRD

DIR | Rename-Item -NewName {$ .name -replace " ", ""}

Но я получаю ошибку:

C:\Data\GRD> DIR | Rename-Item -NewName {$ .name -replace " ", ""}

«Rename-Item» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

1 ответ1

1

Помимо того факта, что ваш пример вообще не работает должным образом, в общем, чтобы использовать PowerShell для формирования командного файла, вы указываете, что хотите запустить PowerShell, и передавать ему командную строку PS в качестве аргумента.

Так что в вашей партии используйте что-то вроде:

powershell "DIR | Rename-Item -NewName { $.name -replace \"\",\" \" }"

Обратите внимание на \ перед двойными кавычками, чтобы избежать их внутри аргумента, разделяющего двойные кавычки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .