Comments 32
Запускать надо командой
Самой последней командой поставьте
powershell -executionpolicy unrestricted -file a.ps1
.Самой последней командой поставьте
Sleep -Seconds 9
, сейчас у Вас скрипт выключается и не успевает воспроизвести файл.+1
Видимо загвоздка у автора именно в Sleep, у меня без всяких -executionpolicy вот такой однострочник сработал:
Аккаунт с привилегиями обычного пользователя, не администратор.
powershell -Command "& {$s=new-Object System.Media.SoundPlayer; $s.SoundLocation='C:/Windows/Media/tada.wav'; $s.Play(); Sleep -Seconds 9}"
Аккаунт с привилегиями обычного пользователя, не администратор.
0
У меня без
-executionpolicy
не работает, говорит что не подписан скрипт. У Вас наверное тоже глобальная настройка безопасности изменена на лояльный уровень? Хотя я наверное пользователь-администратор, так как один в системе.0
Феерично. Чтобы для проигрывания файла нужно было сначала определить его длительность, а потом дать слип этой длительности — это полный… Извините меня. Неужели никто из разработчиков не подумал о создании хоть какого-то синхронного интерфейса или на крайний случай метода isPlaying(), который можно было бы опрашивать в цикле?
0
Дополню ответ. Ключем
-executionpolicy
устанавливается политика безопасности на один этот запуск. Глобальные настройки безопасности лучше не менять, так что верните обратно: Set-ExecutionPolicy Restricted
. :)0
Зачем sleep, если есть PlaySync
К тому же SoundPlayer задачу не решает, так как не умеет проигрывать mp3, а вот WMPlayer.OCX умеет, к тому же его можно использовать не только из PS, но и из WSH (ну или если очень захочется — из C++ и пр..)
К тому же SoundPlayer задачу не решает, так как не умеет проигрывать mp3, а вот WMPlayer.OCX умеет, к тому же его можно использовать не только из PS, но и из WSH (ну или если очень захочется — из C++ и пр..)
+1
Только зачем так сложно с явным созданием промежуточного объекта?
Вот так мне кажется и читается проще и писать меньше
Вот так мне кажется и читается проще и писать меньше
powershell -Command (new-object Media.SoundPlayer "C:\Windows\Media\notify.wav").play(); Sleep -Second 1;
0
>Попробовал решить задачу новомодным PowerShell
Как-то язык не поворачивается назвать PS «новомодным», это уже зарекомендовавшее себя средство, навороченное и отлаженное, и как следствие применяющееся повсеместно.
Как-то язык не поворачивается назвать PS «новомодным», это уже зарекомендовавшее себя средство, навороченное и отлаженное, и как следствие применяющееся повсеместно.
+3
И вообще если мы просто системный звук хотим проиграть то вот так будет наиболее кошерно
powershell -Command ([System.Media.SystemSounds]::Beep).Play();
powershell -Command ([System.Media.SystemSounds]::Beep).Play();
+1
>в системе уже под 20Гб какого то говна чего то полезного, которое зовется операционной системой…
+стопятьсот!
И хотя то что cmd перерастает в PowerShell это радует, но тем не менее мир командной строки надо оставить всевозможным Shell'ам *nix'ов…
+стопятьсот!
И хотя то что cmd перерастает в PowerShell это радует, но тем не менее мир командной строки надо оставить всевозможным Shell'ам *nix'ов…
-4
RUNDLL32 amovie.ocx,RunDll /play /close \path\to\wave\file.wav
насколько я помню, то в XP это работало без PowerShell и прочего. Сейчас проверить не могу, т.к. уже давно не пользовался Windows. Вообще rundll имеет кучу всяких плюшек.
насколько я помню, то в XP это работало без PowerShell и прочего. Сейчас проверить не могу, т.к. уже давно не пользовался Windows. Вообще rundll имеет кучу всяких плюшек.
+1
Так mp3-то играет или нет? Или только никому не нужный wav играет?
0
Увы, нет.
Исключение при вызове «Play» с «0» аргументами: «Файл в папке *** не является волновым файлом.»
+2
А зачем вам mp3? Да еще и из консоли? Если уж очень нужно, то запускайте комбайн WMPlayer, а то консольный интерфейс им подавай! Не напасешься на таких как вы…
0
нет, для этого можно поставить mpg123 :)
+1
denis_q
0
Вы заголовок этого топика прочитали? «Навеяно q&a: Как воспроизвести mp3 из командной строки в Windows 7?»
0
(new-object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").play();
На первой же строке в поисковике.
0
Sign up to leave a comment.
Как же все-таки пользоваться PowerShell?