Get-ChildItem $pwd -Filter *.mp3 | ForEach-Object -Process{
if($_ -is [System.IO.FileInfo])
{
python C:\ffmpeg.py $_.name
}
}
例如本代码,我要调用 Python 脚本处理音频文件,比如文件夹下有 10 个 MP3,执行的时候 10 线程同时开始的。
1
zhangzhi0000 OP 标题打错了,是 PowerShell
|
3
zhangzhi0000 OP @xupefei 我在 mac 上试了下,是单线程顺序执行下来,没问题,之前 win7 运行的时候多个 ffmpeg 进程同时执行,明天我再去试试
|
4
whe 2019-05-23 00:17:11 +08:00
目测是 -Process 的锅 不是 | 的
|
5
zhangzhi0000 OP @whe 亲测不是-Process 的问题,我在 mac 和 win7 都测试了不带-Process,mac 是单个进程执行,win7 是同步执行所有的进程。
![]( https://s2.ax1x.com/2019/05/23/VCIxsO.jpg) mac 和 win7 上都是目前最新的版本( 6.2.1 ) ![]( https://s2.ax1x.com/2019/05/23/VCIvQK.jpg) |
6
zhangzhi0000 OP @whe 我知道问题在哪了,是调用的锅,用 Start-Process 带 Wait 参数就可以了。
Start-Process -FilePath ffmpeg -ArgumentList $d -NoNewWindow -Wait |