回答:
xcopy.exe
ここでのソリューションです。Windowsに組み込まれています。
xcopy /s c:\Folder1 d:\Folder2
あなたはhttp://www.computerhope.com/xcopyhlp.htmでより多くのオプションを見つけることができます
xcopy
は非推奨であり、ファイル名が254文字を超えると「メモリ不足」エラーが発生します。robocopy
代わりに使用してください:robocopy C:\Folder1 D:\Folder2 /COPYALL /E
en.wikipedia.org/wiki/Robocopy
ロボコピーがあれば
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
さもないと、
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
あなたは厄介な驚きを得ることができます。そのSS64ページを注意深く読むことをお勧めします。「CMDのエスケープキャラクターとは」といううさぎの穴の完全な説明については、「バッチスクリプトでの二重引用符のエスケープ」を参照してください。
xcopyの使用を提案する多くの回答が表示されます。しかし、これは不要です。この質問では、作成者がフォルダー自体の内容ではなく、フォルダー内のコンテンツをコピーすることを望んでいることを明確に述べているため、この場合は次のようにできます。
copy "C:\Folder1" *.* "D:\Folder2"
xcopy
サブディレクトリが存在する場合、すべてを使用できますC:\Folder1
md D:\Folder2
copy
コマンド(Windows 10コマンドプロンプト)で、構文が正しくないことがわかります。以下は、正しい構文になりますcopy "C:\Folder1\*.*" "D:\Folder2"
RoboCopyは私にとってはうまくいきませんでした、そしてここにいくつかの良い解決策がありますが、XCopyスイッチとそれらが何をするかを説明したものはありません。また、パスにスペースが含まれている場合は、引用符が必要です。
xcopy / i / e "C:\ temp \ folder 1" "C:\ temp \ folder 2"
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
参考までに... TortoiseSVNを使用していて、リポジトリ全体を定期的に「安全な」場所にxcopy(またはディレクトリミラー)する単純なバッチファイルを作成する場合、これは、使用する可能性のある特定のコードです。隠しディレクトリ/ファイルをコピーし、読み取り専用の属性を維持します。すべてのサブディレクトリ、そして何よりも、入力を求められません。folder1(安全なリポジトリ)とfolder2(使用可能なリポジトリ)を正しく割り当てていることを確認してください。
@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%
そして、それだけです!
スケジュールされたタスクに追加し、決して振り返ることはありません。
@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
空のものを除くディレクトリとサブディレクトリを/E
コピーし、空のものを含むディレクトリとサブディレクトリをコピーします。/Q
コピー中はファイル名は表示されませんが、コピー中はコピー/F
元とコピー先の完全なファイル名が表示されます。
一時ファイルにファイルをコピーして貼り付け、zipしてsmbマウントポイントに転送するための.batファイルを作成しました。これが役立つことを願って、
@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%"