【发布时间】:2017-10-11 15:16:24
【问题描述】:
作为一个恶作剧的一部分,我制作了一个 powershell 脚本,它将音量提高到最大水平并播放 10 次放屁声中的 1 次。它由 .bat 调用。
当我在 Powershell ISE 程序中运行它时,它运行良好,但是当我从 .bat 文件调用 PS1 时,声音没有发出(但脚本的其他方面有效)。在调试时,我添加了“奇怪的部分”(见下文),.bat 文件开始工作,每次都播放随机噪音(不仅仅是声音 0)
这是什么原因?
$a=0
while ($a -lt 100){
$obj = new-object -com wscript.shell
$obj.SendKeys([char]175)
$a=$a+1
}
$x= random(10)
$sound = new-Object System.Media.SoundPlayer
$file="S:\Test\farts\$x.wav"
$sound.SoundLocation=$file
$sound.Play()
write-host $x
奇怪的第五部分
& soundplayer.play("S:\Test\farts\0.wav");
(由@powershell.exe调用-executionpolicy绕过-file S:\POWERSHELL_SCRIPTS\fart.ps1)
【问题讨论】:
-
你能粘贴整个脚本吗....我真的不确定声音播放器在哪里被调用?
-
"& soundplayer.play("S:\Test\farts\0.wav");"你为什么这么叫?如果你已经从 PS1 脚本播放它??
-
您的部分问题没有意义。您已经展示了以下内容,
& soundplayer.play("S:\Test\farts\0.wav");是 powershell 脚本文件的一部分还是它的输出?如果不是,它是如何相关的?您还显示了一个命令行来调用 powershell 脚本,@powershell.exe -executionpolicy Bypass -file S:\POWERSHELL_SCRIPTS\fart.ps1;这是.bat文件的一部分还是全部? -
两个灰色区域构成了我的 ps1 脚本。它由 .bat 调用。上半部分作为 .ps1 工作,但是当 .bat 文件调用 .ps1 时,没有声音出来。那条额外的行应该没有意义,但是 .bat 可以正常使用它(调用随机声音,而不仅仅是每次 #0)。我的问题是为什么脚本的上半部分在 PS1 中有效,但在 .bat 中无效,以及为什么额外的一行导致 .bat 有效?
标签: powershell batch-file audio