שאלה קובץ העברה robocopy ולא תיקייה


אני מנסה להשתמש robocopy כדי להעביר קובץ יחיד ממיקום אחד לאחר, אך robocopy נראה שאני חושב שאני תמיד מציין תיקייה. הנה דוגמה:

robocopy "c:\transfer_this.txt" "z:\transferred.txt"

אבל אני מקבל את השגיאה הזאת במקום:

2009/08/11 15:21:57 ERROR 123 (0x0000007B) Accessing Source Directory c:\transfer_this.txt\

(שים לב \ בסוף transfer_this.txt)

אבל אם אני מתייחסת לזה כמו לתיקיה שלמה:

robocopy "c:\folder" "z:\folder"

זה עובד אבל אז אני צריך להעביר הכל בתיקייה.

איך אני יכול רק להעביר קובץ יחיד עם robocopy?


90
2017-08-11 22:29




def copyFile(fromLocation,toLocation,big=False): print("copy file from " + fromLocation + " to " + toLocation) if big: iFind=fromLocation.rfind('\\') fromLocation1 = fromLocation[: (iFind+1)] fileName=fromLocation[iFind+1 :] toLocation1 = toLocation[:(toLocation.rfind('\\')+1)] strcmd="robocopy "+fromLocation1+" "+toLocation1+" "+fileName print(strcmd) os.system(strcmd) else: shutil.copy2(fromLocation,toLocation) - Gank


תשובות:


ראה: Robocopy /?

שימוש: יעד מקור ROBOCOPY [קובץ [קובץ] ...] [אפשרויות]

robocopy c:\folder d:\folder transfer_this.txt

116
2017-08-11 22:37



fwiw, לפחות על win2003: ציטוט נתיבי המדריך נראה לעשות את זה hiccup. - samsmith
@ samsmith ראיתי את זה hiccup כאשר יש לך \ לפני סגירת הצעת מחיר (כלומר: ROBOCOPY "c: \ folder1 \" c: \ file2 הקובץ לא יעבוד אבל: ROBOCOPY "c: \ folder1" c: \ folder2 אני חושב שזה טקסט לברוח דבר - Mike Goatly
@MikeGoatly נקודת מצויינת. Robocopy לא אוהב נגרר \. הוא רוצה שם הספריות כמו "שמות" ולא רוצה לרמוז בכל דרך שהיא מקבלת דבר אחר מאשר ספרייה. - samsmith


על פי מאמר ויקיפדיה על RobocopyYou

מכונת צילום תיקיות, לא מכונת צילום

תחביר Robocopy שונה במידה ניכרת מפקודות העתקה סטנדרטיות, מכיוון שהוא מקבל רק שמות תיקיות כמקור המקור וארגומנטים של היעד. שמות קבצים ותווי כרטיס בר (כגון *.*) אינם טענות מקור או יעד חוקי. ניתן לבחור או לא לכלול קבצים באמצעות ארגומנט סינון filespec אופציונלי. Filespec יכול להתייחס רק לשמות הקבצים ביחס לתיקיות שכבר נבחרו להעתקה. שמות נתיבים בעלי הסמכה מלאה אינם נתמכים.

לדוגמה, כדי להעתיק את הקובץ foo.txt מהספריה c:\bar ל c:\baz, ניתן להשתמש בתחביר הבא:

robocopy c:\bar c:\baz foo.txt


16
2017-08-30 23:47



דבר אחד שמתי לב. אם C: \ bar יש בו תיקיות והאפשרות / e נוספה. זה יהיה לשחזר את כל התיקיות עם קבצים לא בהם. אני מניח שכן foo.txt מעשי כמו מסנן ולא הצלחתי למצוא את כל הקבצים בתיקיות אלה ותיקיות ריקות לשמור. זה למה תיקיות ריקות נוצרות. - Donny V


נסה להוסיף רווח לפני היעד, כך:

robocopy "c:\transfer_this.txt" "z: \this.txt" 

להבחין בחלל  לאחר היעד "תיקייה" z:.


1
2018-06-29 20:37



זה לא עובד בשבילי, הייתי צריך לעקוב אחר ההוראות של KPWINC & ולהשאיר את שם הקובץ מתוך נתיב המקור. - influent
זוהי תשובה טרול? ניסה ולא עובד (וגם זה לא נראה כאילו זה היה עובד). - Pacerier


"\ F: \ Dopbox" Microsoft Office.zip "/ MT: 128


-4
2018-06-04 10:31



Robocopy מקור קובץ היעד - Dale
פקודה ללא הסבר אינה תשובה שימושית. - kasperd