Pertanyaan file transfer robocopy dan bukan folder


Saya mencoba untuk menggunakannya robocopy untuk mentransfer file tunggal dari satu lokasi ke lokasi lain tetapi robocopy sepertinya berpikir aku selalu menentukan folder. Berikut ini contohnya:

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

Tapi saya mendapatkan kesalahan ini sebagai gantinya:

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

(perhatikan \ pada akhir transfer_this.txt)

Tetapi jika saya memperlakukannya seperti seluruh folder:

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

Berhasil tetapi kemudian saya harus mentransfer semuanya ke dalam folder.

Bagaimana saya hanya dapat mentransfer satu file dengan 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


Jawaban:


Lihat: Robocopy /?

Penggunaan: Tujuan sumber ROBOCOPY [file [file] ...] [opsi]

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

116
2017-08-11 22:37



fwiw, setidaknya pada win2003: Mengutip jalur direktori tampaknya membuatnya cegukan. - samsmith
@samsmith Saya pernah melihatnya cegukan ketika Anda memiliki \ sebelum kuota penutupan (yaitu: ROBOCOPY "c: \ folder1 \" c: \ file folder2 tidak berfungsi tetapi: ROBOCOPY "c: \ folder1" c: \ folder2 file tidak, saya berharap itu adalah hal yang meloloskan teks - Mike Goatly
@MikeGoatly Poin yang bagus. Robocopy TIDAK suka mengikuti \. Ia ingin Anda menamai direktori sebagai "nama" dan tidak ingin menyiratkan dengan cara apa pun bahwa ia menerima apa pun selain direktori. - samsmith


Menurut artikel Wikipedia tentang Robocopy:

Folder copier, bukan mesin fotokopi file

Sintaks Robocopy sangat berbeda dari perintah salin standar, karena hanya menerima nama folder sebagai argumen sumber dan tujuan. Nama file dan karakter wild-card (seperti *.*) bukan argumen sumber atau tujuan yang valid. File dapat dipilih atau dikecualikan menggunakan argumen penyaringan filespec opsional. Filespec hanya dapat merujuk ke nama file relatif ke folder yang sudah dipilih untuk menyalin. Nama jalur yang sepenuhnya memenuhi syarat tidak didukung.

Misalnya, untuk menyalin file foo.txt dari direktori c:\bar untuk c:\baz, seseorang bisa menggunakan sintaks berikut:

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


16
2017-08-30 23:47



Satu hal yang saya perhatikan. Jika C: \ bar memiliki folder di dalamnya dan opsi / e telah ditambahkan. Ini akan membuat ulang semua folder tanpa file di dalamnya. Saya kira karena foo.txt bertindak seperti filter dan tidak dapat menemukan file di folder tersebut dan Anda menyimpan folder kosong. Itu sebabnya folder kosong dibuat. - Donny V


Coba masukkan spasi sebelum tujuan, seperti ini:

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

perhatikan ruang  setelah folder tujuan " z:.


1
2018-06-29 20:37



Ini tidak bekerja untuk saya, saya harus mengikuti instruksi @ KPWINC dan membiarkan nama file keluar dari jalur sumber. - influent
Ini adalah jawaban troll? Dicoba dan tidak berfungsi (juga tidak terlihat seperti itu akan berhasil). - Pacerier


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


-4
2018-06-04 10:31



Robocopy nama file tujuan tujuan - Dale
Perintah tanpa penjelasan bukanlah jawaban yang berguna. - kasperd