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

    2019년 10월 21일 월요일 오후 7:29

답변

모든 응답

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

    Ja.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    2019년 10월 21일 월요일 오후 7:32
  • Welcher Befehl?
    • 편집됨 Der Anonyme 2019년 10월 21일 월요일 오후 7:41
    2019년 10월 21일 월요일 오후 7:41
  • Get-WmiObject Win32_Volume -Filter "DriveType=2" | Select-Object Name,Label


    Evgenij Smirnov

    http://evgenij.smirnov.de

    2019년 10월 21일 월요일 오후 7: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.

    2019년 10월 21일 월요일 오후 8: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
    2019년 10월 22일 화요일 오후 2: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

    2019년 10월 22일 화요일 오후 2: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 2019년 10월 22일 화요일 오후 2:46
    2019년 10월 22일 화요일 오후 2:45