Antworten:
xcopy.exe
ist hier die Lösung. Es ist in Windows integriert.
xcopy /s c:\Folder1 d:\Folder2
Weitere Optionen finden Sie unter http://www.computerhope.com/xcopyhlp.htm
xcopy
ist veraltet und löst einen Fehler "Unzureichender Speicher" aus, wenn der Dateiname länger als 254 Zeichen ist. Verwenden Sie robocopy
stattdessen: robocopy C:\Folder1 D:\Folder2 /COPYALL /E
en.wikipedia.org/wiki/Robocopy
Wenn Sie Robokopie haben,
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
Andernfalls,
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
Sie möglicherweise eine böse Überraschung erleben. Ich empfehle, diese SS64-Seite sehr sorgfältig zu lesen. Eine vollständige Übersicht über das Kaninchenloch "Was ist ein Escape-Charakter in CMD?" Finden Sie unter Escaping Double Quotes in Batch Script .
Ich sehe viele Antworten, die auf die Verwendung von xcopy hinweisen. Das ist aber unnötig. Da in der Frage klar erwähnt wird, dass der Autor möchte, dass DER INHALT IM ORDNER und nicht der Ordner selbst in diesem Fall kopiert werden, können wir:
copy "C:\Folder1" *.* "D:\Folder2"
Das alles xcopy
kann verwendet werden, wenn ein Unterverzeichnis in vorhanden istC:\Folder1
md D:\Folder2
copy
Befehl (Windows 10-Eingabeaufforderung) teilt mir mit, dass die Syntax falsch ist. Das Folgende wäre die richtige Syntax:copy "C:\Folder1\*.*" "D:\Folder2"
RoboCopy hat bei mir nicht funktioniert, und hier gibt es einige gute Lösungen, aber keine hat die XCopy-Schalter und ihre Funktionsweise erklärt. Außerdem benötigen Sie Anführungszeichen, falls Ihr Pfad Leerzeichen enthält.
xcopy / i / e "C: \ temp \ Ordner 1" "C: \ temp \ Ordner 2"
Hier ist die Dokumentation von Microsoft:
/s: Specifies to include subdirectories. Excludes empty subdirectories
/e: Copies all subdirectories, even if they are empty
/i: specifies the destination is a folder (Otherwise it prompts you)
@echo off
::Ask
echo Your Source Path:
set INPUT1=
set /P INPUT1=Type input: %=%
echo Your Destination Path:
set INPUT2=
set /P INPUT2=Type input: %=%
xcopy %INPUT1% %INPUT2% /y /s
Auf meinem PC benötigen xcopy und robocopy auch den Pfad zu ihnen, dh C: \ Windows \ System32 \ xcopy.exe
Deshalb benutze ich einfach "copy": copy / y .... \ Folder1 \ File.txt .... \ Folder2 \
Zu Ihrer Information ... Wenn Sie TortoiseSVN verwenden und eine einfache Batchdatei erstellen möchten, um ganze Repositorys regelmäßig an einem "sicheren" Speicherort zu xkopieren (oder zu spiegeln), ist dies der spezifische Code, den Sie möglicherweise verwenden möchten. Es kopiert über die versteckten Verzeichnisse / Dateien, verwaltet schreibgeschützte Attribute und alle Unterverzeichnisse und das Beste von allem fordert nicht zur Eingabe auf. Stellen Sie einfach sicher, dass Sie Ordner1 (sicheres Repo) und Ordner2 (verwendbares Repo) korrekt zuweisen.
@echo off
echo "Setting variables..."
set folder1="Z:\Path\To\Backup\Repo\Directory"
set folder2="\\Path\To\Usable\Repo\Directory"
echo "Removing sandbox version..."
IF EXIST %folder1% (
rmdir %folder1% /s /q
)
echo "Copying official repository into backup location..."
xcopy /e /i /v /h /k %folder2% %folder1%
Und das war's Leute!
Fügen Sie Ihren geplanten Aufgaben hinzu und schauen Sie niemals zurück.
@echo off
:: variables
echo Backing up file
set /P source=Enter source folder:
set /P destination=Enter Destination folder:
set xcopy=xcopy /S/E/V/Q/F/H/I/N
%xcopy% %source% %destination%
echo files will be copy press enter to proceed
pause
/S
kopiert Verzeichnisse und Unterverzeichnisse mit Ausnahme von leeren, während /E
Verzeichnisse und Unterverzeichnisse einschließlich leerer Verzeichnisse kopiert werden. /Q
zeigt beim Kopieren nicht die /F
Dateinamen an , während beim Kopieren die vollständigen Quell- und Zieldateinamen angezeigt werden.
Ich habe eine .bat-Datei geschrieben, um eine Datei zu kopieren und in einen temporären Ordner einzufügen und sie komprimieren und in einen jdm-Mount-Punkt übertragen zu lassen. Ich hoffe, dies würde helfen.
@echo off
if not exist "C:\Temp Backup\" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"
if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
xcopy /s/e/q "C:\Source" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\TELIUM"
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_Log_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
NET USE \\IP\IPC$ /u:IP\username password
ROBOCOPY "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP" "\\IP\Backup Folder" /z /MIR /unilog+:"C:\backup_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log"
NET USE \\172.20.10.103\IPC$ /D
RMDIR /S /Q "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"