-
Notifications
You must be signed in to change notification settings - Fork 0
/
Play-Media.ps1
38 lines (30 loc) · 1.19 KB
/
Play-Media.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
param (
[string]$FolderPath
)
# Check if the folder path is valid
if (-not (Test-Path -Path $FolderPath -PathType Container)) {
Write-Host "Folder path '$FolderPath' is not valid."
exit
}
# Define an array of valid media file extensions
$ValidMediaExtensions = @(".mp3", ".mp4", ".avi", ".mkv", ".wmv", ".flv")
# Recursively search for media files in the specified folder
$MediaFiles = Get-ChildItem -Path $FolderPath -Recurse |
Where-Object { $ValidMediaExtensions -contains $_.Extension }
# Check if any media files were found
if ($MediaFiles.Count -eq 0) {
Write-Host "No media files found in the specified folder."
exit
}
# Get the path of the default media player executable (e.g., VLC)
$DefaultMediaPlayerPath = (Get-Command -Name "vlc" -ErrorAction SilentlyContinue).Source
if (-not $DefaultMediaPlayerPath) {
Write-Host "Default media player (e.g., VLC) not found on your system."
exit
}
# Play each media file using the default media player
foreach ($MediaFile in $MediaFiles) {
Write-Host "Playing: $($MediaFile.FullName)"
Start-Process -FilePath $DefaultMediaPlayerPath -ArgumentList $MediaFile.FullName -Wait
}
Write-Host "All media files played successfully."