2016-04-25 8 views
-3

Ich suchte überall über Google und es scheint keine Lösung zu geben. Xcopy, kopieren, Robocopy, als Zeichenkette über variable Parsen, Wildcard-Zeichen ..Kopierbefehl für Ordner mit .. und = Namen mit .bat-Dateien

copy C:\soulworker\datas\bin\Table\nf2\data12.v C:\soulworker\datas\=true_english\ 

for /R C:\soulworker\datas\bin\Table\nf2\English\ %%f in (*.res) do copy %%f C:\soulworker\datas\bin\Table\nf2\data12.zip\..\bin\Table\ 
+0

analysiert Es ist nicht möglich, '. .' Teil eines Dateipfads zu sein; '..' ist ein spezielles Verzeichnis, das in jedes Verzeichnis eingebaut ist und in das darüberliegende Verzeichnis verweist. – SomethingDark

+0

Ich bin mir nicht sicher, warum ich wegen der Frage nach einer gültigen Frage runtergeregelt wurde, aber es ist Teil eines ZIP-Dateiverzeichnisses, das ich extrahiert habe. https://i.snag.gy/jAIKnO.jpg https://i.snag.gy/AMxC7O.jpg – Emi

+0

Das ist nicht der extrahierte Pfad; Der extrahierte Pfad wird nirgendwo '.zip' enthalten. Sie haben fälschlicherweise den Pfad von _inside_ der ZIP-Datei übernommen. Tu das nicht. – SomethingDark

Antwort

1

Auf =Gleichheitszeichen in Pfad oder Dateinamen, lesen cmd Syntax: Escape Characters, Delimiters and Quotes:

Trennzeichen

Trennzeichen trennen einen Parameter vom nächsten - sie teilen die Befehlszeile in Wörter auf.

Parameter werden am häufigsten durch Zwischenräume getrennt sind, aber jede der folgenden gelten auch Begrenzungszeichen:

  • Komma (,)
  • Semikolon (;)
  • gleich (=)
  • Fläche()
  • Tab()

Um ein Trennzeichen in der Datei oder Pfadnamen zu halten, doppelte Anführungszeichen verwenden, wie folgt:

copy C:\soulworker\datas\bin\Table\nf2\data12.v "C:\soulworker\datas\=true_english\" 

Bei Verwendung .. verdoppelt Full Stop, lesen Naming Files, Paths, and Namespaces:

Verwenden Sie zwei aufeinanderfolgende Punkte (. .) als Verzeichniskomponente in einem Pfad zu das übergeordnete Element des aktuellen Verzeichnisses darstellen.

Zum Beispiel alle

dir C:\soulworker\datas\bin\Table\nf2\bin\Table\ 
zu

lösen

selbst wenn übersprungen Verzeichniskomponente in einem Pfad zum Beispiel unzulässige Zeichen enthält

dir C:\soulworker\datas\bin\Table\nf2\data12.zip\..\bin\Table\ 
dir C:\soulworker\datas\bin\Table\nf2\data12Xzip\..\bin\Table\ 
dir C:\soulworker\datas\bin\Table\nf2\foobar.exe\..\bin\Table\ 
dir C:\soulworker\datas\bin\Table\nf2\foobarABCD\..\bin\Table\  

würde * (Stern), ? (Fragezeichen) oder : (Kolon), siehe nächstes Beispiel:

==> dir /B /S c:\windows\foo***...???:::\..\system32\notepad.exe 
c:\windows\system32\notepad.exe 

==> 

Der \foo***...???::: Pfadteil (vorhergehenden \..) ist gar nicht ...

Verwandte Themen