如何对目录中的每个文件执行命令?

时间:2019-07-01 12:15:17

标签: powershell

我想查看一个虚幻引擎4游戏的每个包里面的内容。在游戏文件中,有700多个paks,然后执行命令手动查看内容是一件很痛苦的事情。

我正在使用虚幻引擎的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,然后将所有pak的所有输出放在其中,或者有log_(pakname).txt

我可以手动执行,但是执行同一命令700次以上将花费大量时间。如果有人可以帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:1)

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} 

答案 1 :(得分:0)

让我们在路径中添加unrealpak:

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

然后

cd somedir\Content\Paks
dir *.pak | foreach { unrealpak $_ -test >> ~\desktop\log.txt }