Как я могу выполнить команду для каждого файла в каталоге? - PullRequest
0 голосов
/ 01 июля 2019

Я хочу посмотреть, что находится внутри каждого пакета игры Unreal Engine 4. В файлах игры есть более 700 пакетов, и выполнить команду для просмотра контента вручную - это просто боль.

Я использую Unreal Engine UnrealPak.exe для просмотра содержимого pak-файла. Я использую следующую команду для просмотра (и записи в журнал) содержимого пакета pak-

E:\UE_4.10\Engine\Binaries\Win64\UnrealPak.exe (directory of the game)\Content\Paks\(pak file name).pak -test > C:\Users\(user)\Desktop\Logs\log.txt

Это поместит весь вывод этой команды в текстовый файл log.txt.

То, что я хочу сделать, - это цикл, который будет выполнять эту команду для каждого файла, а затем я мог бы сделать две вещи, иметь одну log.txt и затем поместить все выходные данные всех пакетов туда, или иметь log_(pakname).txt

Я мог бы просто пойти вручную, но это займет много времени, чтобы выполнить одну и ту же команду более 700 раз. Если кто-то может мне помочь, я буду очень благодарен.

Ответы [ 2 ]

1 голос
/ 01 июля 2019
Get-ChildItem -Path. -Recurse -Include  "*.pak" | Foreach-Object { invoke-expression "E:\UE_4.10\Engine\Binaries\Win64\UnrealPak.exe $($_.Fullname) -test " | Out-file "log.txt" -Append} 
0 голосов
/ 01 июля 2019

Давайте добавим unrealpak к пути:

$env:path += E:\UE_4.10\Engine\Binaries\Win64

Тогда

cd somedir\Content\Paks
dir *.pak | foreach { unrealpak $_ -test >> ~\desktop\log.txt }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...