Powershell 3.0: COPY-ITEM Filter- oder Include-Optionen funktionieren nicht

9

Funktioniert der Parameter -Filter oder -Include bei Verwendung von Powershell 3.0 für jeden Benutzer? Ich habe beide folgenden Befehle ausprobiert:

%Vor%

und

%Vor%

Tatsächlich wird für die Option -Filter ein leerer Ordner "temp" in c: \ TEMP2 erstellt. Ich weiß, dass der folgende Befehl funktioniert:

%Vor%

Aber wundern Sie sich nur, wenn jemand schon einmal auf dieses Problem gestoßen ist?

    
inquisitive_one 24.12.2013, 15:52
quelle

1 Antwort

17

Dies liegt daran, dass das Element, das Sie in das Kopierelement eingeben, der Ordner ist und nicht die Dateien im Ordner.

Wenn Sie Folgendes ausführen:

%Vor%

Sie sagen: Element kopieren, wobei der Pfad der Ordner c: \ temp ist. Das einzige Element, das zum Kopieren von ausgewählt wurde, ist das Verzeichnis c: \ temp. Dann sagen wir nur: - Schließen Sie Elemente ein, die "* .txt" entsprechen. Da das einzige Element (der Ordner "temp") nicht mit dem Muster übereinstimmt, machen wir nichts.

Um dies zu beweisen, ändern wir den Include-Filter in "temp" und führen ihn erneut aus:

%Vor%

Voilà! Im Zielordner haben wir einen neuen leeren Ordner: c: \ temp2 \ temp. (Es ist leer, weil das einzige Element, das wir ihm zu kopieren befohlen haben, der Ordner "temp" war, wir haben ihm nichts anderes gesagt)

Also für Teil 2, Wenn Sie ausführen:

%Vor%

Es funktioniert, weil Sie sagen, mit der * .txt, durchlaufen Sie alle Elemente im Verzeichnis, die dem Muster * .txt entsprechen, füttern Sie diese Pfade zu Copy-Item, und kopieren Sie das Ziel.

Um dies zu beweisen, ändern wir es und geben einen Include-Filter an:

%Vor%

Wir sagen hier, alle Elemente im Ordner c: \ temp holen (dh wir erhalten alle Elemente innerhalb des Ordners c: \ temp und nicht das Ordner c: \ temp), filtern Sie sie, indem Sie nur Elemente einschließen, die "* .txt" entsprechen, und kopieren Sie sie an das Ziel.

    
HAL9256 24.12.2013, 17:46
quelle