Respostas:
xcopy.exe
é a solução aqui. Está embutido no Windows.
xcopy /s c:\Folder1 d:\Folder2
Você pode encontrar mais opções em http://www.computerhope.com/xcopyhlp.htm
xcopy
foi descontinuado e dispara um erro de 'Memória insuficiente' quando o nome do arquivo tiver mais de 254 caracteres. Use em robocopy
vez disso: robocopy C:\Folder1 D:\Folder2 /COPYALL /E
en.wikipedia.org/wiki/Robocopy
Se você tem robocopy,
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
de outra forma,
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
uma surpresa desagradável. Eu recomendo ler essa página SS64 com muito cuidado. Para uma viagem completa pela toca do coelho "o que é um caractere de escape no CMD", consulte Escapando aspas duplas no script em lote .
Vejo muitas respostas sugerindo o uso do xcopy. Mas isso é desnecessário. Como a pergunta menciona claramente que o autor deseja que o CONTEÚDO DA PASTA não seja a própria pasta a ser copiada, neste caso, podemos:
copy "C:\Folder1" *.* "D:\Folder2"
Isso tudo xcopy
pode ser usado se existir algum subdiretório noC:\Folder1
md D:\Folder2
copy
comando (prompt de comando do Windows 10) informa que a sintaxe está incorreta. A seguinte seria a sintaxe correta:copy "C:\Folder1\*.*" "D:\Folder2"
O RoboCopy não funcionou para mim e existem algumas boas soluções aqui, mas nenhuma explicou os switches XCopy e o que eles fazem. Você também precisa de aspas, caso seu caminho tenha espaços.
xcopy / i / e "C: \ temp \ pasta 1" "C: \ temp \ pasta 2"
Aqui está a documentação da 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
No meu PC, xcopy e robocopy também precisam do caminho para eles, ou seja, C: \ Windows \ System32 \ xcopy.exe
É por isso que eu simplesmente uso "copiar": copiar / y .... \ Pasta1 \ Arquivo.txt .... \ Pasta2 \
Para sua informação ... se você usa o TortoiseSVN e deseja criar um arquivo em lotes simples para xcopy (ou espelho de diretório) repositórios inteiros em um local "seguro" periodicamente, esse é o código específico que você pode usar. Ele copia os diretórios / arquivos ocultos, mantém atributos somente leitura e todos os subdiretórios e o melhor de tudo, não solicita entrada. Apenas certifique-se de atribuir a pasta1 (repositório seguro) e a pasta2 (repositório utilizável) corretamente.
@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%
E é isso aí pessoal!
Adicione às suas tarefas agendadas e nunca olhe para trás.
@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
copia diretórios e subdiretórios, exceto os vazios, enquanto /E
copia diretórios e subdiretórios, incluindo os vazios. /Q
não exibe os nomes dos arquivos durante a cópia, enquanto /F
exibe os nomes completos dos arquivos de origem e destino durante a cópia.
Eu escrevi um arquivo .bat para copiar e colar o arquivo em uma pasta temporária e compactá-lo e transferi-lo para um ponto de montagem smb. Espero que isso ajude,
@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%"