ผู้ตอบมากที่สุด
Wechseldatenträger auslesen

คำถาม
-
คำตอบ
-
Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label
Evgenij Smirnov
- เสนอเป็นคำตอบโดย Denniver ReiningMVP, Moderator 21 ตุลาคม 2562 20:16
- ทำเครื่องหมายเป็นคำตอบโดย Denniver ReiningMVP, Moderator 22 ตุลาคม 2562 20:26
ตอบทั้งหมด
-
Kennt jemand einen Befehl, der alle angeschlossenen Wechseldatenträger ausliest und in Powershell auflistet?
Evgenij Smirnov
-
-
Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label
Evgenij Smirnov
- เสนอเป็นคำตอบโดย Denniver ReiningMVP, Moderator 21 ตุลาคม 2562 20:16
- ทำเครื่องหมายเป็นคำตอบโดย Denniver ReiningMVP, Moderator 22 ตุลาคม 2562 20:26
-
Tststs. :)
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort. -
Danke für die schnelle Hilfe, aber es ist ein neues Problem aufgetaucht, denn der Befehl wird erst nach dem "Read-Host" ausgeführt, obwohl er davor steht.
Ein Teil meines Programmcodes:
$exeFilePc = "$HOME\Documents\Programme" $dataFilePc = "$HOME\Documents\Dokumente" $FileUsb = "" Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name $Wechseldatenträger = (Read-Host "Geben sie bitte den Buchstaben eines der oben aufgelisteten Wechseldatenträger ein") $FileUsb = $Wechseldatenträger + ":\" Copy-Item -Path $exeFilePc -Destination $FileUsb -Recurse -WhatIf Copy-Item -Path $dataFilePc -Destination $FileUsb -Recurse -WhatIf
-
Dann musst Du für die Reihenfolge der Ausgabe sorgen, z.B. so:
$drives = @(Get-WmiObject Win32_Volume -Filter "DriveType=2").Name Write-Host ($drives -join " ") $Wechseldatenträger = (Read-Host "Geben sie bitte den Buchstaben eines der oben aufgelisteten Wechseldatenträger ein") $FileUsb = $Wechseldatenträger + ":\"
Umlaute in Varianblennamen sind Mist.
Du musst eine Variable, die Du ohne Bedingungen immer setzt, nicht initialisieren.
Evgenij Smirnov
-
Ich weiß, es ist mit Kanonen auf Spatzen geschossen, aber ich hatte das quasi fertig "rumliegen". Vielleicht kannst Du ja einen teil verwenden:
function Select-Drive { $ALLDrives = Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name, Label, Description $ChooseList = $ALLDrives | Sort-Object -Property Name If ($ChooseList) { $Index = @{Name = 'Index'; Expression = { [ARRAY]::IndexOf($ChooseList, $_) + 1 } } if ($ChooseList.Length -eq 1) { Return $ChooseList[0] } else { $ChooseList | Select-Object $index, Name, Label, Description | Format-Table -AutoSize | Out-Host [int]$Auswahl = 0 do { try { [int]$Auswahl = Read-Host 'Bitte Index des gewünschten Laufwerks angeben (<Enter> = 0 = Ende)' -ErrorAction Stop Write-Verbose "Select-Drive `$Auswahl: $Auswahl" } catch { Write-Warning "Fehlerhafte Eingabe! Bitte einen numerischen Wert zwischen '0' und '$($ChooseList.Length )' angeben!" } } until ($Auswahl -ge 0 -and $Auswahl -lt $ChooseList.Length + 1 ) if ($Auswahl -eq 0) { $ChosenDrive = 'none' } else { $ChosenDrive = $ChooseList[$Auswahl - 1 ] } Write-Verbose "Select-Drive `$ChosenDrive: $ChosenDrive" Start-Sleep -Milliseconds 1200 } } Return $ChosenDrive } Select-Drive
So präsentierst Du dem Nutzer eine indexierte Liste, aus der er nur noch auswählen muss. Ausgegeben wird dann das ausgeählte Laufwerk. Aber Du kannst es Dir ja na Belieben anpassen. ;-)
Live long and prosper!
(79,108,97,102|%{[char]$_})-join''
- แก้ไขโดย BOfH-666 22 ตุลาคม 2562 14:46