458 Stimmen

xcopy file, umbenennen, Meldung "Gibt xxx einen Dateinamen an..." unterdrücken

Das scheint ziemlich einfach zu sein, und vielleicht übersehe ich nur die richtige Flagge aber wie kann ich mit einem einzigen Befehl eine Datei von einem Verzeichnis in ein anderes kopieren und sie im Zielverzeichnis umbenennen? Hier ist mein Befehl:

if exist "bin\development\whee.config.example"
  if not exist "TestConnectionExternal\bin\Debug\whee.config"
    xcopy "bin\development\whee.config.example"
          "TestConnectionExternal\bin\Debug\whee.config"

Es fordert mich jedes Mal mit folgendem Text auf:

Hat TestConnectionExternal \bin\Debug\whee.config einen Dateinamen angeben oder einen Verzeichnisnamen auf dem Ziel (F = Datei, D = Verzeichnis)?

Ich möchte diese Aufforderung unterdrücken; die Antwort lautet immer F .

27voto

DaveD Punkte 271

Es gibt also eine einfache Lösung für dieses Problem. Sie ist zugegebenermaßen umständlich, aber sie funktioniert. xcopy fragt nicht nach, ob das Ziel ein Verzeichnis oder eine Datei ist, WENN die neue Datei (Dateiname) bereits existiert. Wenn Sie Ihrem xcopy-Befehl ein einfaches Echo für den neuen Dateinamen voranstellen, wird die leere Datei überschrieben. Beispiel

echo.>newfile.txt
xcopy oldfile.txt newfile.txt /Y

7voto

Ivan Alexandrov Punkte 41

Ich habe dasselbe Problem, wenn ich versuche, eine Datei mit einem neuen Namen zu kopieren, nur dann, wenn die Datei im Ziel nicht existiert oder zwar existiert (mit neuem Namen), aber älter ist. Die Lösung ist, Folgendes hinzuzufügen * Zeichen am Ende des Zieldateinamens. Beispiel:

xcopy "C:\src\whee.config.txt" "C:\dest\bee.config.txt*" /D /Y

4voto

adudley Punkte 874

Dies ist die Antwort von Bills.

Nur um es für andere deutlich zu machen.

Wenn Sie kopieren ONE Datei von einem Ort zum anderen ET Sie möchten, dass die vollständige Verzeichnisstruktur erstellt wird, verwenden Sie den folgenden Befehl:

xcopy "C:\Data\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg" "C:\Target Data\\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg\" 

Ja, setzen Sie einen Backslash an das Ende des Dateinamens und werden Sie NICHT gefragt, ob es sich um eine Datei oder ein Verzeichnis handelt. Da es nur EINE Datei in der Quelle gibt, wird angenommen, dass es sich um eine Datei handelt.

3voto

Colin Hay Punkte 25

XCOPY mit * am Ende des Ziels, um Dateien zu kopieren, egal ob sie im Ziel vorhanden sind oder nicht XCOPY mit \ am Ende des Ziels, um Ordner und Inhalte zu kopieren, unabhängig davon, ob sie im Ziel vorhanden sind oder nicht

Alternativ dazu

RoboForm SOURCE DEST FILE für Dateien RoboForm SOURCE DEST für Ordner

2voto

user140185 Punkte 31

Ich hatte ein ähnliches Problem und sowohl robocopy als auch xcopy haben nicht geholfen, da ich die Kommentare unterdrücken und einen anderen Zieldateinamen verwenden wollte. Ich fand

type filename.txt > destfolder\destfilename.txt

nach meinen Anforderungen arbeiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X