Powershell脚本 - 从批处理文件转换

时间:2014-03-21 02:05:45

标签: batch-file powershell

我将其作为批处理文件工作但是当我尝试转换为Powershell时,我的文件不会像批处理文件中那样进行转码。它应该询问2个输入问题,视频链接和本地IP地址。一旦它有2个输入问题的答案,Vlc播放​​器应该打开视频链接,然后实时将文件从.flv格式转码为另一种格式,并开始在vlc上播放,因为它的转码。然后在同一时间,我开始通过本地网络上的chrome浏览器在vidcast上播放转换后的文件,然后转换后的视频也可以使用chromecast投射到电视上。

我认为问题出现在powershell脚本的粗体区域,但没有经验,并且不知道如何修复它。请有人帮帮忙。

批处理文件

@echo off
set /p input="Insert your Http link: "
set /p input1="Insert your Local IP address: "
rem VLC
cd "C:\Program Files\VideoLAN\VLC"

start vlc.exe %input% :sout=#transcode{vcodec=VP80,vb=2000,acodec=vorb,ab=128,channels=2,samplerate=44100}:http{mux=webm,dst=:8080/stream} :sout-all :sout-keep

cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe "https://dabble.me/cast/?video_link=http://%input1%/stream"
exit

Power Shell

$link = read-host "Enter an Http Link "
$ip = read-host "Enter your Local Ip Address "

& "C:\Program Files\VideoLAN\VLC\vlc.exe" "$link" ":sout=#transcode{vcodec=VP80,vb=2000,acodec=vorb,ab=128,channels=2,samplerate=44100}:http{mux=webm,dst=:8080/stream}:sout-all :sout-keep" 

& "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "https://dabble.me/cast/?video_link=http://$ip/stream"

1 个答案:

答案 0 :(得分:0)

您是否尝试ArgumentList设置了Start-Process

Start-Process -FilePath 'C:\Program Files (x86)\VideoLAN\VLC\vlc.exe' -ArgumentList "$link",":sout=#transcode{vcodec=VP80,vb=2000,acodec=vorb,ab=128,channels=2,samplerate=44100}:http{mux=webm,dst=:8080/stream}:sout-all :sout-keep"

Start-Process将文件路径(-FilePath)作为要启动的进程。然后,它将一个String数组的参数(-ArgumentList)与正在启动的可执行文件合并。

FilePath应该是可执行文件的完整路径(如果您愿意,还应该是相对路径)

ArgumentList应该是您所有的个人参数,以逗号分隔

总而言之,它应该是:

Start-Process -FilePath "C:\Where\VLC\Is\Located.exe" -ArgumentList "1stArg"[,"2ndArg"[,...]]