none
Wechseldatenträger auslesen RRS feed

  • Question

  • 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

    lundi 21 octobre 2019 19:29

Réponses

Toutes les réponses

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

    Ja.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    lundi 21 octobre 2019 19:32
  • Welcher Befehl?
    lundi 21 octobre 2019 19:41
  • Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label


    Evgenij Smirnov

    http://evgenij.smirnov.de

    lundi 21 octobre 2019 19: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.

    lundi 21 octobre 2019 20:17
    Modérateur
  • 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
    mardi 22 octobre 2019 14: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

    mardi 22 octobre 2019 14: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''

    • Modifié BOfH-666 mardi 22 octobre 2019 14:46
    mardi 22 octobre 2019 14:45