Windows XCOPY-Ergebnisse aus dem FIND-Befehl

Windows XCOPY-Ergebnisse aus dem FIND-Befehl

Windows 7 CMD

Mit dem folgenden Befehl kann ich eine Liste der Dateien abrufen dir /b | find "TENDER_NUM 2". Ich versuche, alle von find zurückgegebenen Dateien in einen anderen Ordner zu kopieren.

Ich habe es versucht: for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\

Was aber nicht funktionierte.

EDIT 1: Die Fehlermeldung lautet unexpected |, was vermutlich von derdir/b | Findstr

EDIT 2: Ja, dir_to_copy\ existiert

Antwort1

Fehlermeldung „Unerwartet“|

for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\

Der obige Befehl enthält mehrere Fehler.

  1. Sie müssen das |Sonderzeichen mit folgendem Zeichen maskieren ^:

    ^|
    
  2. Sie müssen dir /b | findstr "TENDER_NUM 2"Folgendes in einfache Anführungszeichen setzen ':

    'dir /b ^| findstr "TENDER_NUM 2"'
    
  3. Sie müssen for /fstattdessen Folgendes verwenden for /r:

    für /f-Befehl mit den Ergebnissen eines anderen Befehls wiederholen.

    für /r- Durch Dateien blättern (Unterordner rekursiv durchsuchen).

Verwenden Sie den folgenden Befehl von einer cmdShell aus:

for /f %x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%x" dir_to_copy\

In einer Batchdatei (ersetzen %durch %%):

for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\

Weitere Informationen

  • Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
  • für /f- Befehl mit den Ergebnissen eines anderen Befehls wiederholen.
  • für /r- Durch Dateien blättern (Unterordner rekursiv durchsuchen).
  • Syntax- Escape-Zeichen, Trennzeichen und Anführungszeichen.

verwandte Informationen