Réponses:
xcopy.exe
est la solution ici. Il est intégré à Windows.
xcopy /s c:\Folder1 d:\Folder2
Vous pouvez trouver plus d'options sur http://www.computerhope.com/xcopyhlp.htm
xcopy
est obsolète et déclenche une erreur «Mémoire insuffisante» lorsque le nom du fichier contient plus de 254 caractères. Utilisez à la robocopy
place: robocopy C:\Folder1 D:\Folder2 /COPYALL /E
en.wikipedia.org/wiki/Robocopy
Si vous avez robocopy,
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
autrement,
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
vous pourriez avoir une mauvaise surprise. Je recommande de lire très attentivement cette page SS64. Pour un voyage complet dans le terrier du lapin «qu'est-ce qu'un caractère d'échappement dans CMD», voir Échapper à des guillemets doubles dans un script par lots .
Je vois beaucoup de réponses suggérant l'utilisation de xcopy. Mais cela n'est pas nécessaire. Comme la question mentionne clairement que l'auteur veut que LE CONTENU DU DOSSIER ne soit pas copié dans le dossier lui-même, dans ce cas, nous pouvons -:
copy "C:\Folder1" *.* "D:\Folder2"
Tout cela xcopy
peut être utilisé si un sous-répertoire existe dansC:\Folder1
md D:\Folder2
copy
commande (invite de commande Windows 10) m'indique que la syntaxe est incorrecte. Ce qui suit serait la syntaxe correcte:copy "C:\Folder1\*.*" "D:\Folder2"
RoboCopy n'a pas fonctionné pour moi, et il y a quelques bonnes solutions ici, mais aucune n'a expliqué les commutateurs XCopy et ce qu'ils font. Vous avez également besoin de guillemets au cas où votre chemin contient des espaces.
xcopy / i / e "C: \ temp \ dossier 1" "C: \ temp \ dossier 2"
Voici la documentation de 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
Sur mon PC, xcopy et robocopy ont également besoin du chemin d'accès, c'est-à-dire C: \ Windows \ System32 \ xcopy.exe
C'est pourquoi j'utilise simplement "copier": copier / y .... \ Folder1 \ File.txt .... \ Folder2 \
FYI ... si vous utilisez TortoiseSVN et que vous voulez créer un simple fichier de commandes pour xcopier (ou mettre en miroir de répertoire) des référentiels entiers dans un emplacement "sûr" sur une base périodique, alors c'est le code spécifique que vous voudrez peut-être utiliser. Il copie les répertoires / fichiers cachés, conserve les attributs en lecture seule et tous les sous-répertoires et, mieux encore, ne demande pas d'entrée. Assurez-vous simplement que vous attribuez correctement le dossier1 (dépôt sécurisé) et le dossier2 (dépôt utilisable).
@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%
Et c'est tout!
Ajoutez à vos tâches planifiées et ne regardez jamais en arrière.
@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
copie les répertoires et sous-répertoires sauf les vides, tandis que les /E
répertoires et sous-répertoires copiés y compris les vides. /Q
n'affiche pas les noms de fichiers pendant la copie, tandis que /F
affiche les noms complets des fichiers source et de destination pendant la copie.
J'ai écrit un fichier .bat pour copier et coller le fichier dans un dossier temporaire et le compresser et le transférer dans un point de montage smb, j'espère que cela aiderait,
@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%"