none
Wechseldatenträger auslesen RRS feed

  • السؤال

  • Hallo,

    ich wollte mir ein kleines Script schreiben, dass meine Daten auf einen ausgewählten Wechseldatenträger kopiert. Kennt jemand einen Befehl, der alle angeschlossenen Wechseldatenträger ausliest und in Powershell auflistet?

    Mit freundlichen Grüßen

    der Anonyme

    22/صفر/1441 07:29 م

الإجابات

جميع الردود

  • Kennt jemand einen Befehl, der alle angeschlossenen Wechseldatenträger ausliest und in Powershell auflistet?

    Ja.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    22/صفر/1441 07:32 م
  • Welcher Befehl?
    • تم التحرير بواسطة Der Anonyme 22/صفر/1441 07:41 م
    22/صفر/1441 07:41 م
  • Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label


    Evgenij Smirnov

    http://evgenij.smirnov.de

    22/صفر/1441 07:54 م
  • 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.

    22/صفر/1441 08:17 م
    المشرف
  • 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
    23/صفر/1441 02:05 م
  • 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

    http://evgenij.smirnov.de

    23/صفر/1441 02:34 م
  • 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 23/صفر/1441 02:46 م
    23/صفر/1441 02:45 م