Powershell: получите все .файлы yaml, выполните команды для этих файлов yaml, а затем переименуйте их

#python #powershell

Вопрос:

Я хотел бы создать скрипт Powershell для выполнения следующих действий (набранных на Python для демонстрации):

 CommandTemplate = "toPDF main.tex xyz"                  # a command template
ListOfFiles = glob.glob("*.yaml")                       # get all yaml files in cwd
for file in ListOfFiles:                                # iterate thry
    os.system(CommandTemplate.replace("xyz", file))      # call command, will make a main.pdf. Maybe want to wrap this in brackets?
    os.rename("main.pdf", file.replace(".yaml", ".pdf")) # rename main.pdf to match yaml
 

Я понятия не имею, с чего начать. Любая помощь будет признательна.

Ответ №1:

Обновите путь к каталогу и текст для замены в соответствии с вашими требованиями.

 $files = Get-ChildItem -Path "d:Test" -Name *.yaml

foreach($file in $files)
{
 ((Get-Content -path "d:test$file") -replace 'abc','def') | Set-Content -Path "D:test$file"
 $newName = $file.Split('.')[0]
 Rename-Item -Path d:test$file -NewName "$newName.pdf"
}
 

Комментарии:

1. Я не вижу, где на самом деле выполняется команда; не могли бы вы объяснить, пожалуйста, где я бы разместил toPDF main.tex часть команды?