ฉันมีโฟลเดอร์ใน C:\Folder1
ฉันต้องการคัดลอกเนื้อหาทั้งหมดFolder1
ไปยังตำแหน่งอื่นD:\Folder2
ฉันจะทำสิ่งนี้โดยใช้ไฟล์แบตช์ได้อย่างไร
ฉันมีโฟลเดอร์ใน C:\Folder1
ฉันต้องการคัดลอกเนื้อหาทั้งหมดFolder1
ไปยังตำแหน่งอื่นD:\Folder2
ฉันจะทำสิ่งนี้โดยใช้ไฟล์แบตช์ได้อย่างไร
คำตอบ:
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
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
มิฉะนั้น,
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
คุณอาจได้รับความประหลาดใจที่น่ารังเกียจ ฉันแนะนำให้อ่านหน้า SS64 นั้นอย่างระมัดระวัง สำหรับการเดินทางที่เต็มลง "สิ่งที่เป็นตัวหนีใน CMD" หลุมกระต่ายดูคำคมหนีคู่ในสคริปต์ชุด
หากคุณต้องการลบข้อความที่บอกว่าปลายทางเป็นไฟล์หรือโฟลเดอร์คุณเพียงแค่เพิ่มเครื่องหมายทับ:
xcopy /s c:\Folder1 d:\Folder2\
ฉันเห็นคำตอบมากมายที่แนะนำให้ใช้ 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 \ โฟลเดอร์ 1" "C: \ temp \ โฟลเดอร์ 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
บนพีซีของฉัน xcopy และ robocopy ต้องการเส้นทางไปยังพวกเขาเช่น C: \ Windows \ System32 \ xcopy.exe
นั่นเป็นเหตุผลที่ฉันใช้เพียงแค่ "copy": copy / y .... \ Folder1 \ File.txt .... \ Folder2 \
@echo off
xcopy /s C:\yourfile C:\anotherfile\
นี่คือวิธีการทำ! ง่ายใช่มั้ย?
FYI ... หากคุณใช้ TortoiseSVN และคุณต้องการสร้างไฟล์แบตช์อย่างง่ายเพื่อ xcopy (หรือไดเร็กทอรีมิเรอร์) ที่เก็บทั้งหมดลงในตำแหน่ง "ปลอดภัย" เป็นระยะนี่คือรหัสเฉพาะที่คุณอาจต้องการใช้ มันคัดลอกไปยังไดเร็กทอรี / ไฟล์ที่ซ่อนอยู่รักษาคุณสมบัติแบบอ่านอย่างเดียวและไดเร็กทอรีย่อยทั้งหมดและที่ดีที่สุดคือไม่แจ้งให้ป้อนข้อมูล เพียงตรวจสอบให้แน่ใจว่าคุณกำหนด folder1 (repo ที่ปลอดภัย) และ folder2 (repo ที่ใช้งานได้) อย่างถูกต้อง
@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
แสดงชื่อไฟล์ต้นทางและปลายทางแบบเต็มขณะคัดลอก
ฉันได้เขียนไฟล์. bat เพื่อคัดลอกและวางไฟล์ลงในโฟลเดอร์ชั่วคราวและทำให้ไฟล์ zip และถ่ายโอนไปยังจุดเชื่อมต่อ smb หวังว่านี่จะช่วยได้
@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%"