# Validate ISO exists if (-not (Test-Path $IsoPath)) Write-Host "ISO file not found: $IsoPath" -ForegroundColor Red exit 1
Write-Host "=== Windows 7 Bootable USB Creator ===" -ForegroundColor Cyan Write-Host "ISO : $IsoPath" Write-Host "USB : $UsbDriveLetter" Write-Host "WARNING: All data on $UsbDriveLetter will be DESTROYED!" -ForegroundColor Yellow $confirm = Read-Host "Type YES to continue" if ($confirm -ne "YES") Write-Host "Aborted." -ForegroundColor Red exit 0 windows 7 portable usb
$diskNumberLine = diskpart /s (New-TemporaryFile | % $_.FullName; Set-Content $_.FullName "select volume $volNumber`nlist disk`nexit" ) $diskNumber = $diskNumberLine | Select-String -Pattern "\*" | ForEach-Object $_ -replace '.*Disk (\d+).*', '$1' | Select-Object -First 1 if (-not $diskNumber) Write-Host "Failed to get physical disk number." -ForegroundColor Red exit 1 # Validate ISO exists if (-not (Test-Path $IsoPath))
param( [Parameter(Mandatory=$true, HelpMessage="Path to Windows 7 ISO file")] [ValidateScript(Test-Path $_ -PathType Leaf)] [string]$IsoPath, [Parameter(Mandatory=$true, HelpMessage="USB drive letter (e.g., D: or E:)")] [ValidatePattern("^[A-Za-z]:$")] [string]$UsbDriveLetter ) HelpMessage="USB drive letter (e.g.
# Check if USB drive exists if (-not (Test-Path $drivePath)) Write-Host "Drive $UsbDriveLetter does not exist or is not ready." -ForegroundColor Red exit 1
# Parse disk number (e.g., "* Volume 2 D ..." -> 2) $tokens = $diskNumberLine -split '\s+' $volNumber = $null for ($i = 0; $i -lt $tokens.Count; $i++) if ($tokens[$i] -match '^\d+$' -and $tokens[$i+1] -eq $driveLetter) $volNumber = $tokens[$i] break