ฉันจะให้ robocopy ใช้ไฟล์บันทึกที่มีช่องว่างได้อย่างไร


11

ฉันลองคำสั่งต่อไปนี้:

robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"

ฉันได้รับข้อผิดพลาดนี้:

ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"

แก้ไข # 1

ปรากฎว่าคำสั่งดังกล่าวถูกต้องฉันมีการพิมพ์ผิดในเส้นทางของฉัน หากคุณมีเส้นทางซึ่งรวมถึงช่องว่างคุณสามารถกำหนดให้สวิตช์ robocopy / log ของดังนี้:/log:"c:\path to a file\robocopy.log"


ได้ผลสำหรับฉัน อาจแสดงข้อผิดพลาดอย่างละเอียดมากขึ้นที่ด้านบนหรือไม่
Carko

คุณใช้คำสั่งนั้นในบริบทของสคริปต์แทนที่จะเป็นโดยตรงที่บรรทัดคำสั่ง บางทีมีบางอย่างที่เพิ่มการหลบหนีบางอย่าง?
Zoredache

ข้อความแสดงข้อผิดพลาดแสดงให้เห็นว่าเครื่องหมายอัญประกาศเริ่มต้นมาก่อนแทนที่จะอยู่หลังเครื่องหมายจุดคู่ คุณแน่ใจหรือไม่ว่าคำสั่งที่คุณพยายามเรียกใช้นั้นเป็นไปตามที่แสดงไว้?
Harry Johnston

ฉันขอโทษที่ฉันพิมพ์ผิดในเส้นทาง ส่วนใหญ่อาย ขอบคุณสำหรับความช่วยเหลือที่รวดเร็วของทุกคน! ฉันควรจะลบคำถามนี้อย่างไร หรือฉันสามารถใช้ถ้อยคำใหม่และเพิ่มคำตอบที่แสดงว่าคุณสามารถใส่เครื่องหมายคำพูดรอบ ๆ อาร์กิวเมนต์ไปที่ / log switch ของ robocopy ได้
slm

ไม่มีเหตุผลที่จะลบ @slm หากความคิดเห็นข้อใดข้อหนึ่งข้างต้นช่วยคุณค้นหาปัญหาให้พวกเขาโพสต์เป็นคำตอบแล้วทำเครื่องหมายคำตอบที่ถูกต้อง หากปัญหานั้นเป็นอย่างอื่นทั้งหมดให้เขียนคำตอบของคุณเองและทำเครื่องหมายว่าเป็นคำตอบเพื่อที่ผู้ค้นหาในอนาคตจะรู้ว่าควรตรวจสอบว่าพวกเขามีปัญหาที่คล้ายกันหรือไม่
music2myear

คำตอบ:


11

หากคุณต้องการระบุพา ธ ที่มีช่องว่างสำหรับสวิตช์ / log ของ robocopy คุณสามารถทำได้ดังนี้:

/log:"c:\path to logs files\some log file.txt"

ฉันได้รับข้อผิดพลาดไม่ถูกต้อง: พารามิเตอร์ # 11 "/ log" ฉันเพิ่มลงในส่วนท้ายของคำสั่งการทำงานเป็นอย่างอื่น
Andrew S

ฉันไม่ทำงานอีกต่อไปที่ฉันรองรับ windows ดังนั้นจึงไม่มีวิธีทดสอบ
slm

ตรวจสอบให้แน่ใจว่ามีไดเรกทอรีหลักของไฟล์บันทึกอยู่ Robocopy จะไม่สร้างและน่าเศร้าที่จะบ่นเกี่ยวกับพารามิเตอร์ cmdline หากไม่มี dir
mojo

4

มีสี่วิธีในการบันทึกเป็นเอกสาร Powershell

/log:<LogFile> : เขียนเอาต์พุตสถานะไปยังไฟล์บันทึก (เขียนทับไฟล์บันทึกที่มีอยู่)

  • เช่น: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : เขียนเอาต์พุตสถานะไปยังไฟล์บันทึก (ผนวกเอาต์พุตไปยังไฟล์บันทึกที่มีอยู่)

  • เช่น: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : เขียนเอาต์พุตสถานะลงในไฟล์บันทึกเป็นข้อความ Unicode (เขียนทับไฟล์บันทึกที่มีอยู่)

  • เช่น: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : เขียนเอาต์พุตสถานะลงในไฟล์บันทึกเป็นข้อความ Unicode (ผนวกเอาต์พุตไปยังไฟล์บันทึกที่มีอยู่)

  • เช่น: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

สำหรับรายละเอียดเพิ่มเติมhttps://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx


ฉันจะแนะนำให้เพิ่ม/teeสวิตช์เนื่องจากเป็นบรรทัดคำสั่งของผลิตภัณฑ์และให้ผู้ใช้เห็นความคืบหน้าของการคัดลอกไฟล์ในบรรทัดคำสั่งด้วย
vibs2006

1

มันเกิดขึ้นเมื่อต้องการสิทธิ์ผู้ดูแลระบบ / หรือป๊อปเพื่อสร้างไฟล์ลงในไดเรกทอรีนั้น

ดังนั้นพยายามที่จะมีไดเรกทอรี log / temp และพยายามเพิ่มไฟล์บันทึกลงในไดเรกทอรีบันทึกนั้น

$ mkdir C:\log

เช่น:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"

0

หากเส้นทางไปยังไฟล์บันทึกมีช่องว่างหรือตัวคั่นสคริปต์อื่น ๆ โปรดรวมไว้ในเครื่องหมายคำพูดเช่น EDIT # 1 และ @slm ของคุณแนะนำ แต่ยังโปรดทราบการใช้งานของตัวหนีตามที่อธิบายไว้ในเอกสารนี้ในการเขียนสคริปต์ Batch


ฉันมีปัญหาเดียวกันหลังจากการโยกย้าย Win 10 ที่ร้ายแรงและไม่ต้องการ
Marc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.