none
Wechseldatenträger auslesen RRS feed

  • Dotaz

  • 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

    pondělí 21. října 2019 19:29

Odpovědi

Všechny reakce

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

    Ja.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    pondělí 21. října 2019 19:32
  • Welcher Befehl?
    • Upravený Der Anonyme pondělí 21. října 2019 19:41
    pondělí 21. října 2019 19:41
  • Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label


    Evgenij Smirnov

    http://evgenij.smirnov.de

    pondělí 21. října 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.

    pondělí 21. října 2019 20:17
    Moderátor
  • 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
    úterý 22. října 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

    úterý 22. října 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''

    • Upravený BOfH-666 úterý 22. října 2019 14:46
    úterý 22. října 2019 14:45