我正在编写一个脚本来播放某个播放器中的某些文件。我使用get来获取一个文件名数组。然后,我想使用启动进程来播放这些文件。但是,如何将这些文件名添加到player程序的参数中呢?
我使用了Start-Process -FilePath "C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe" -ArgumentList $selected_items,但它似乎不工作,文件没有播放。
注意,文件名中有空格。
发布于 2021-12-25 12:40:40
Get-ChildItem . | ForEach-Object {Start-Process -FilePath "C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe" -ArgumentList $_.FullName}发布于 2021-12-25 15:25:09
您不需要启动进程(另外,-argumentlist不太容易处理带有空格的文件名)。
& "C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe"
C:\Program` Files\DAUM\PotPlayer\PotPlayerMini64.exe
$env:path += ';C:\Program Files\DAUM\PotPlayer'; PotPlayerMini64即使使用启动过程,它也会随着程序的不同而变化.例如,Emacs可以接受由空格分隔的多个文件参数。如果文件名有空格,则需要双引号。外部程序不知道数组是什么,启动进程将它们转换为一个字符串,每个元素之间都有空格。
start emacs file1,file2,'"my file"'
get-wmiobject win32_process | ? name -eq emacs.exe | % commandline
"c:\program files\emacs\bin\emacs.exe" file1 file2 "my file"
ps emacs | % commandline # ps 7
"c:\program files\emacs\bin\emacs.exe" file1 file2 "my file"https://stackoverflow.com/questions/70479960
复制相似问题