ไฟล์ xcopy, เปลี่ยนชื่อ, ระงับ“ ไม่ xxx ระบุชื่อไฟล์…”


404

ดูเหมือนง่ายมากและบางทีฉันแค่มองเห็นการตั้งค่าสถานะที่เหมาะสมแต่ฉันจะคัดลอกไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งได้อย่างไรและเปลี่ยนชื่อในไดเรกทอรีปลายทางได้อย่างไร นี่คือคำสั่งของฉัน:

if exist "bin\development\whee.config.example"
  if not exist "TestConnectionExternal\bin\Debug\whee.config"
    xcopy "bin\development\whee.config.example"
          "TestConnectionExternal\bin\Debug\whee.config"

มันแจ้งให้ฉันมีดังต่อไปนี้ทุกครั้ง:

TestConnectionExternal \ bin \ Debug \ whee.config ระบุชื่อไฟล์หรือชื่อไดเรกทอรีในเป้าหมาย (F = ไฟล์, D = ไดเรกทอรี) หรือไม่

ฉันต้องการระงับพรอมต์นี้; Fคำตอบอยู่เสมอ


15
echo f | xcopy ...
Cyclion

downvote ทำไมคุณถึงใช้ xcopy ถ้าการคัดลอกทำในสิ่งที่คุณต้องการ
barlop

3
Miscrosoft : "ทำไมต้องทำอะไรง่ายๆเมื่อคุณทำให้ผู้ใช้ของคุณสับสนอย่างแท้จริง?" นี่คือเวลาที่พวกเขาควรจะคัดลอกสิ่งที่กำลังทำอยู่ในโลกของ Linux ดูที่cpb ** t สำหรับการคัดลอกไฟล์ / dirs รอบ ๆ !
fduff


ฉันขอแนะนำให้อ่านคำตอบของฉันในไฟล์ BATCH เพื่อขอไฟล์หรือโฟลเดอร์ที่อธิบายอย่างละเอียดเมื่อมีข้อความแสดงขึ้นมาและวิธีการที่จะสามารถตอบได้โดยอัตโนมัติด้วยภาษาของไฟล์ระบบปฏิบัติการที่เป็นอิสระ
Mofi

คำตอบ:


217

อย่าใช้xcopy, ใช้copyแทน, ไม่มีปัญหานี้

xcopyโดยทั่วไปจะใช้เมื่อทำการคัดลอกซ้ำหลายไฟล์ / โฟลเดอร์หรือเมื่อคุณต้องการคุณสมบัติการตรวจสอบ / การพร้อมท์ให้มัน สำหรับการคัดลอกไฟล์เดียวcopyคำสั่งทำงานได้ดี


97
copyจะไม่คัดลอกไฟล์หากโครงสร้างไดเรกทอรีทั้งหมดของปลายทางยังไม่มีอยู่ xcopyจะสร้างไดเรกทอรีที่จำเป็นทั้งหมดโดยอัตโนมัติ
BQ

41
มันวิเศษที่ xcopy มีการละเว้นนี้ หากมันมีตัวเลือกสำหรับไฟล์อย่างที่มันมีสำหรับไดเรกทอรี (/ I) สิ่งนี้จะได้รับการแก้ไขและ xcopy สามารถทดแทนสำเนาได้อย่างยอดเยี่ยม เนื่องจากข้อบกพร่องนี้คุณต้องเลือกคัดลอกสำหรับสถานการณ์เหล่านี้
rocketmonkeys

35
ดังที่คนอื่น ๆ ได้ชี้ให้เห็นแล้วคำตอบของ @ Arnshea คือคำตอบที่ถูกต้อง นี่เป็นเพราะก) สถานการณ์เฉพาะของ OP ที่มีโครงสร้างไดเรกทอรีอยู่แล้วไม่ได้ถูกกล่าวถึงในคำถามและ b) มันมีค่ามากกว่าสำหรับผู้อ่านในอนาคตของคำถามนี้ที่จะมาที่นี่เพื่อหาคำตอบxcopyไม่ใช่เพียงแค่copy.
Mike Nakis

17
คำตอบที่ดีของ @ Amshea ก็เป็นคำตอบที่ถูกต้องเพราะคำถามนั้นเฉพาะกับ xcopy และคำตอบนี้ก็คือ "ไม่ได้ใช้ xcopy" ไม่ตอบคำถามเกี่ยวกับ xcopy เลยตอนนี้ใช่ไหม?
BrainSlugs83

9
เพียงเพิ่มดาวที่ส่วนท้ายของเส้นทางสำหรับเป้าหมาย ดูคำตอบด้านล่างนี้ stackoverflow.com/a/26034267/1231
Donny V.

638

ฉันใช้

echo f | xcopy /f /y srcfile destfile

เพื่อรับรอบ


17
@ Arnshea - ขอบคุณ! ดัดแปลงเพื่อทำสำเนาไดเรกทอรีเงียบecho d | xcopy srcdirectory destdirectory /S
ดร. ABT

8
+1 @Arnshea ฉันใช้เวลาพอสมควรที่จะเข้าใจสิ่งที่คุณกำลังทำอยู่ที่นั่นและตั้งแต่ฉันทำงานในการติดตั้งหน้าต่างเยอรมันecho d | xcopy ...สำหรับฉัน คุณยอดเยี่ยม
โทมัส

23
เขาจำลองการตอบสนองของผู้ใช้ต่อคำถามที่ xcopy จะถาม
John Munsch

5
@Thomas นั่นหมายความว่าไฟล์แบตช์ที่ใช้เทคนิคนี้จะไม่สามารถพกพาข้ามตำแหน่งที่ตั้งอื่นได้หรือไม่
Max Nanasy

17
@ MaxNanasy ฉันยืนยันว่านี่ไม่ใช่การพกพาข้ามสถานที่ ในการตั้งค่าภาษาเยอรมันคุณส่งผ่าน D สำหรับไฟล์หรือ V สำหรับไดเรกทอรี :(
Matt

177

ตัวเลือกอื่นคือการใช้สัญลักษณ์ตัวแทนปลายทาง โปรดทราบว่าจะใช้งานได้ก็ต่อเมื่อชื่อไฟล์ต้นทางและปลายทางจะเหมือนกันดังนั้นในขณะที่วิธีนี้ไม่สามารถแก้ไขตัวอย่างที่เฉพาะเจาะจงของ OP ได้ฉันคิดว่ามันคุ้มค่าที่จะแบ่งปัน

ตัวอย่างเช่น:

xcopy /y "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\*" 

จะสร้างสำเนาของไฟล์ "whee.config.example" ในไดเรกทอรีปลายทางโดยไม่ต้องแจ้งไฟล์หรือไดเรกทอรี

อัปเดต : ดังที่ @chapluck กล่าวถึง:

คุณสามารถเปลี่ยนไป"* " "[newFileName].*"มันยังคงอยู่นามสกุลไฟล์ แต่ช่วยให้การเปลี่ยนชื่อ หรือมากกว่าแฮ็ค: "[newFileName].[newExt]*"เปลี่ยนนามสกุล


1
"echo f |" เป็นวิธีที่ยอดเยี่ยม แต่นี่เป็นการหลีกเลี่ยงสิ่งที่เกินกว่าที่ฉันมักจะค้นหาเพื่อหาปัญหาตั้งแต่แรก
Richard Anthony Hein

6
@ Durden81 - เนื่องจาก zippycoder ชี้ให้เห็นคำตอบของพวกเขาไม่ได้เปลี่ยนชื่อไฟล์ซึ่งเป็นข้อกำหนดของ OP
Polyfun

6
เพื่อขยายคำตอบฉันจะเปลี่ยน "*" เป็น "[newFileName]. *" มันยังคงอยู่นามสกุลไฟล์ แต่ช่วยให้การเปลี่ยนชื่อ หรือแฮ็คเพิ่มเติม: "[newFileName]. * [newExt]" เพื่อเปลี่ยนนามสกุล
chapluck

ขอบคุณ! ส่วนอัปเดตคือสิ่งที่แก้ไขปัญหาของฉันซึ่งจำเป็นต้องเปลี่ยนชื่อไฟล์ในขณะที่รักษานามสกุลและสมมติว่าเป็นไฟล์ XCopy ควรมีสิ่งนี้เป็นสวิตช์
Stanislav

1
ทำงานให้ฉันโดยไม่มีเครื่องหมายดอกจันในตอนท้ายเพียงแค่แบ็กสแลช
tivnet

91

มีฟีเจอร์ที่ไม่มีเอกสารใน XCOPY คุณสามารถใช้ได้:

xcopy "bin \ development \ whee.config.example" "c: \ mybackup \ TestConnectionExternal \ bin \ Debug \ whee.config *"

ฉันทดสอบมันแค่วันนี้ :-)


4
ขอบคุณมาก. ฉันได้เพิ่ม "*" ในตอนท้ายของไฟล์ปลายทางและได้ผล .. :) +1 สำหรับเคล็ดลับ
Rahul Patel

2
ทางออกที่ยอดเยี่ยม - สะอาดหรูหราไม่ใช้คำสั่งอื่นเข้ากันได้กับธง xcopy ที่มีอยู่ทำงานได้อย่างไม่มีที่ติ นี่ควรเป็นคำตอบที่ได้รับการโหวตสูงสุด
Brian Swift

7
คำตอบคือไม่ถูกต้องคำสั่งจะมีผลwhee.config.exampleในโฟลเดอร์ปลายทางเพราะการแข่งขันwhee.config* whee.config.example
Meow

2
ฉันเพิ่งสร้างไฟล์b.txtxtจากนั้นฉันก็เปิดคำสั่งxcopy a.txt b.txt* /F /Yและไฟล์a.txtถูกคัดลอกไปb.txtตามที่คาดไว้ ยิ่งไปกว่านั้นในขณะที่ใช้/F /Yสวิตช์สำเนาที่แท้จริงจะปรากฏบนหน้าจอตรงตามที่คาดไว้
Dominique

1
@ Meow: ไม่เนื่องจาก wildcard อยู่ในปลายทางไม่ใช่ที่มา
ienaxxx

74

เพียงไปที่http://technet.microsoft.com/en-us/library/bb491035.aspx

นี่คือสิ่งที่เป็นปัญหาหลักคือ "... หากปลายทางไม่มีไดเรกทอรีที่มีอยู่และไม่ได้ลงท้ายด้วยแบ็กสแลช () ข้อความต่อไปนี้จะปรากฏขึ้น: ...

ปลายทางระบุชื่อไฟล์หรือชื่อไดเรกทอรีบนเป้าหมาย (F = file, D = directory) หรือไม่

คุณสามารถระงับข้อความนี้ได้โดยใช้ตัวเลือกบรรทัดคำสั่ง / i ซึ่งทำให้ xcopy สันนิษฐานว่าปลายทางเป็นไดเรกทอรีหากแหล่งที่มามากกว่าหนึ่งไฟล์หรือไดเรกทอรี

เอาฉันสักครู่ แต่ทั้งหมดก็คือ RTFM


7
นี่ควรเป็นคำตอบที่ดีที่สุด! เพียงเพื่อจะชัดเจนสำหรับผู้อื่น หากคุณกำลังคัดลอกไฟล์หนึ่งไฟล์จากที่หนึ่งไปอีกที่หนึ่งและคุณต้องการสร้างโครงสร้างไดเรกทอรีแบบเต็มให้ใช้คำสั่งต่อไปนี้: xcopy / "C: \ Data \ Images \ 2013 \ 08 \ 12 \ 85e4a707-2672-481b-92fb -67ecff20c96b.jpg "" C: \ Target Data \\ Images \ 2013 \ 08 \ 12 \ 85e4a707-2672-481b-92fb-67ecff20c96b.jpg \ " ใช่ใส่แบ็กสแลชที่ส่วนท้ายของชื่อไฟล์!
adudley

4
คำตอบที่ดี แต่ไม่ได้แก้ปัญหา ฉันลอง xcopy hello.txt hello2 \ ไม่มีข้อความแจ้ง ตอนนี้ฉันลอง xcopy hello.txt hello3 (ไม่มีแบ็กสแลช) มันแจ้งให้ฉันไม่ว่าจะเป็นไฟล์หรือ dir ฉันต้องการวิธีบอกให้สมมติว่า F หรือ D เป็นสคริปต์
RuntimeException

27
นี่เป็นคำตอบที่แปลกมากโดยเฉพาะอย่างยิ่งเพราะผู้คลั่งไคล้เสียงดังสนั่น "RTFM" ที่ไร้ประโยชน์และความคิดเห็นต่างๆก็ใส่คำตอบที่ "เป็นที่นิยม" ... เนื่องจากมันไม่ได้ตอบคำถามเดิม! คำถามเดิมกล่าวอย่างชัดเจนว่า "คัดลอกไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งและเปลี่ยนชื่อในไดเรกทอรีปลายทาง" คำตอบที่พยายามดังกล่าวข้างต้นปรากฏขึ้นเพื่อจัดการกับกรณีที่แตกต่างกันของการคัดลอกไฟล์โดยมีชื่อไฟล์ปลายทางว่าเป็นชื่อ SAME เป็นไฟล์ต้นฉบับ วิธีการ "ยุ่ง" ที่ได้รับจาก @Arnshea เป็นคำตอบเพียงขั้นตอนเดียวที่ฉันเห็นที่นี่ - ดังนั้น "ความนิยม" ของมัน
M.Bearden

3
นาย Bearden ค่อนข้างสุภาพ แต่เมื่อได้รับการโหวตฉันรู้สึกว่าต้องแสดงรายการปัญหาด้วยคำตอบนี้: 1) วรรค 1 ที่ดูเหมือนจะให้คำตอบสำหรับปัญหาของ OP (วรรค 4 ของ 5) ไม่ได้ทำงานเพราะ OP คือการคัดลอกและการเปลี่ยนชื่อไฟล์ , ไม่ไดเรกทอรี; 2) ลิงก์ที่ให้ไว้ที่ด้านบนสุดของคำตอบไม่ได้ให้โซลูชัน 3) คำสั่งของปัญหาหลักไม่ได้ใช้กับคำถามของ OP; และ 4) คำตอบนั้นเป็นที่น่ารังเกียจโดยตะโกนในย่อหน้าที่ 2 และดูถูกในช่วงสุดท้าย บางทีเขาควรอ่านคำถามอีกครั้ง
GlennFromIowa

2
คำตอบทั้งหมดที่ได้รับที่นี่คือการคัดลอกไปยังไดเรกทอรีไม่คัดลอกในปลายทางไฟล์ซึ่งเป็นไปได้และไม่มีเอกสารดูคำตอบอื่น ๆ จาก zippycoder, chapluck, LBushkin
pdem

27

ดังนั้นจึงมีการแก้ไขที่ง่ายสำหรับเรื่องนี้ เป็นที่ยอมรับที่น่าอึดอัดใจ แต่ก็ใช้งานได้ xcopy จะไม่แจ้งให้ทราบว่าปลายทางนั้นเป็นไดเรกทอรีหรือไฟล์หากไฟล์ใหม่ (ชื่อไฟล์) นั้นมีอยู่แล้ว หากคุณนำหน้าคำสั่ง xcopy ด้วย echo ง่ายๆไปที่ชื่อไฟล์ใหม่คำสั่งนั้นจะเขียนทับไฟล์เปล่า ตัวอย่าง

echo.>newfile.txt
xcopy oldfile.txt newfile.txt /Y

6

นี่คือจากคำตอบตั๋วเงิน

เพียงเพื่อจะชัดเจนสำหรับผู้อื่น

หากคุณกำลังคัดลอกไฟล์หนึ่งไฟล์จากที่หนึ่งไปอีกที่หนึ่งและคุณต้องการสร้างโครงสร้างไดเรกทอรีแบบเต็มให้ใช้คำสั่งต่อไปนี้:

xcopy "C:\Data\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg" "C:\Target Data\\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg\" 

ใช่ใส่แบ็กสแลชที่ส่วนท้ายของชื่อไฟล์และจะไม่ถามคุณว่าเป็นไฟล์หรือไดเรกทอรี เนื่องจากมีไฟล์เพียงไฟล์เดียวในแหล่งข้อมูลมันจะถือว่าเป็นไฟล์


12
นี่เป็นสิ่งที่ผิด เมื่อเรียกใช้ "xcopy versionBase.txt asd \ versionBase.txt \" และไดเรกทอรี asd ไม่มีอยู่ฉันได้รับไฟล์ asd \ versionBase.txt \ versionBase.txt
Cristian Niculescu

1
เช่นเดียวกับคำตอบอื่น ๆ ในหน้านี้โพสต์นี้ไม่ได้ตอบคำถามเดิม คำถามคือวิธีคัดลอกและเปลี่ยนชื่อ (ในขั้นตอนเดียว) ไฟล์ เช่นเดียวกับคำตอบที่สับสนอื่น ๆ การพูดคุยนี้เกี่ยวกับวิธีการคัดลอกไฟล์โดยไม่มีการเปลี่ยนชื่อ
M.Bearden

ไม่ต้องพูดถึงความจริงที่ว่ามันสร้างไดเรกทอรีที่มีชื่อนั้นจริง ๆ ไม่ใช่โฟลเดอร์ ทดสอบออกและเรียก dir หลังจากนั้นและคุณจะเห็นอะไรเช่นนี้ dir "C:\Target Data\\Images\2013\08\12" 09/25/2015 10:48 AM <DIR> 85e4a707-2672-481b-92fb-67ecff20c96b.jpg
GlennFromIowa


2

ฉันมีปัญหาที่คล้ายกันและทั้ง robocopy และ xcopy ไม่ได้ช่วยเพราะฉันต้องการที่จะระงับความคิดเห็นและใช้ชื่อไฟล์ปลายทางอื่น ฉันพบ

type filename.txt > destfolder\destfilename.txt

ทำงานตามความต้องการของฉัน


2

กลับไปที่คำถามเดิม:

 xcopy "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\whee.config"

สามารถทำได้ด้วยสองคำสั่งเช่น:

mkdir "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."
xcopy "bin\development\whee.config.example" "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

โดยการต่อท้าย "\ .. " ไปยังเส้นทางของไฟล์ปลายทางไดเรกทอรีปลายทางจะถูกสร้างขึ้นหากยังไม่มีอยู่ ในกรณีนี้

"c:\mybackup\TestConnectionExternal\bin\Debug\"

ซึ่งเป็นไดเรกทอรีหลักของไดเรกทอรีที่ไม่มีอยู่

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."

อย่างน้อยสำหรับ WIN7 mkdirไม่สนใจว่าไดเรกทอรี

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

มีอยู่จริง


การแก้ไขที่น่าสนใจหากไม่มีไดเรกทอรี น่าเสียดายที่บรรทัดถัดไป (ในการทดสอบของฉัน) ยังคงแจ้งให้ผู้ใช้
GlennFromIowa

คุณพูดถูกมันน่าจะเป็น xcopy "bin \ development \ whee.config.example" "c: \ mybackup \ TestConnectionExternal \ bin \ Debug \ whee.config \" ฉันใช้ aproach เพื่อคัดลอกไฟล์ไปยัง dirotory ที่อาจไม่มีอยู่ สำหรับการเปลี่ยนชื่อดูเหมือนว่าจะมีการเพิ่มแบ็กสแลชในตอนท้าย
grenix

2

XCOPY with * ที่ส่วนท้ายของเป้าหมายเพื่อคัดลอกไฟล์ไม่ว่าจะมีอยู่หรือไม่อยู่ในปลายทาง XCOPY ด้วย \ ที่ส่วนท้ายของเป้าหมายเพื่อคัดลอกโฟลเดอร์และเนื้อหาว่ามีอยู่หรือไม่อยู่ในปลายทาง

อีกทางเลือกหนึ่ง

RoboForm SOURCE DEST FILE สำหรับไฟล์ RoboForm SOURCE DEST สำหรับโฟลเดอร์


1

ผมขอแนะนำให้robocopyแทนหรือcopy xcopyใช้เป็นคำสั่งหรือใน GUI บนไคลเอนต์หรือเซิร์ฟเวอร์ ทนต่อเครือข่ายหยุดชั่วคราวและคุณสามารถเลือกที่จะละเว้นคุณสมบัติไฟล์เมื่อคัดลอกคัดลอกโดยคุณลักษณะไฟล์ โอ้และรองรับเครื่องหลายคอร์ดังนั้นจึงสามารถคัดลอกไฟล์ได้เร็วขึ้นในแบบ "ขนาน" ซึ่งกันและกันแทนที่จะเรียงตามลำดับ robocopyสามารถพบได้บน MS TechNet


2
ฉันใช้ robocopy ตลอดเวลา อย่างไรก็ตามสำหรับคำถามของผู้โพสต์นี้มันจะไม่ทำงานเนื่องจากไม่สามารถเปลี่ยนชื่อไฟล์ได้ สิ่งที่ฉันไม่เคยรู้มาก่อนวันนี้คือxcopyมีสวิตช์ a / z ซึ่งทนต่อการหยุดเครือข่าย!
GlennFromIowa

1

สิ่งที่ถูกต้องหากคุณต้องการคัดลอกไฟล์และเปลี่ยนชื่อที่ปลายทางคือ:

xcopy / f / y "bin \ development \ example.exe" "TestConnectionExternal \ bin \ Debug \ NewName.exe *"

และมันจะทำงานได้ดี


1

สำหรับการทำสำเนาไฟล์ขนาดใหญ่การทำสำเนา xopy ด้วย / J เป็นทางเลือกที่ดี ในกรณีนี้เพียงแค่ไพพ์ F สำหรับไฟล์หรือ D สำหรับไดเรกทอรี นอกจากนี้คุณสามารถบันทึกงานในอาร์เรย์สำหรับการอ้างอิงในอนาคต ตัวอย่างเช่น:

$MyScriptBlock = {
    Param ($SOURCE, $DESTINATION) 
    'F' | XCOPY $SOURCE $DESTINATION /J/Y 
    #DESTINATION IS FILE, COPY WITHOUT PROMPT IN DIRECT BUFFER MODE
}
JOBS +=START-JOB -SCRIPTBLOCK $MyScriptBlock -ARGUMENTLIST $SOURCE,$DESTIBNATION
$JOBS | WAIT-JOB | REMOVE-JOB

ขอขอบคุณ Chand ที่มีการแก้ไขเล็กน้อย: https://stackoverflow.com/users/3705330/chand


0

ใช้การคัดลอกแทน xcopy เมื่อทำการคัดลอกไฟล์

เช่นคัดลอก "bin \ development \ whee.config.example" "TestConnectionExternal \ bin \ Debug \ whee.config"


1
ฉันพยายามคัดลอกไฟล์ไปยังโฟลเดอร์เดียวกันที่มีชื่อแตกต่างกันและ xcopy ไม่สามารถใช้งานได้ ฉันใช้copy /Y source destinationเพื่อผ่านการยืนยันการเขียนทับ
SandRock

0

เนื่องจากคุณไม่ได้เปลี่ยนชื่อไฟล์จริงๆคุณสามารถนำชื่อไฟล์ออกจากปลายทางและจะไม่มีคำถาม

xcopy bin\development\whee.config.example TestConnectionExternal\bin\Debug\  /Y

วิธีนี้ใช้ได้ดีเมื่อมีการรับประกันว่าไดเรกทอรีปลายทางมีอยู่และเมื่อแหล่งที่มาอาจเป็นไฟล์หรือไดเรกทอรีเท่ากัน


1
@downvoters: ทำไมคำตอบนี้อาจถูกลดระดับลง? ในบริบทนี้Debugไดเรกทอรีอาจจะรับประกันว่าจะมีอยู่
Jirka Hanika

4
การตอบสนองนี้กล่าวว่า "เนื่องจากคุณไม่ได้เปลี่ยนชื่อไฟล์จริงๆ" ในขณะที่คำถามเดิมกล่าวอย่างชัดเจนว่า "คัดลอกไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งและเปลี่ยนชื่อใหม่ในไดเรกทอรีปลายทาง" ดังนั้นนี่ดูเหมือนจะไม่เกี่ยวข้องกับหัวข้อ
M.Bearden

0

หลีกเลี่ยงการใช้ ReName ... และตั้งชื่อ Cryptic Name จากนั้นเปลี่ยนชื่อเป็นชื่อที่เหมาะสม

ค:

ซีดี "C: \ Users \ Public \ Documents \ My เว็บไซต์ \ AngelFire ~ Zoe \"

XCopy / D / I / V / Y "C: \ Users \ Public \ Documents \ เว็บไซต์ของฉัน \ HostGator ~ ZoeBeans \ cop.htm"

Ren "cop.htm" "christ-our-passover.htm"


0

xcopy จะอนุญาตให้คุณคัดลอกไฟล์เดียวไปยังโฟลเดอร์ที่ระบุมันจะไม่อนุญาตให้คุณกำหนดชื่อปลายทาง หากคุณต้องการชื่อปลายทางเพียงแค่เปลี่ยนชื่อก่อนที่จะคัดลอก

ren "bin \ development \ whee.config.example" whee.config

xcopy / R / Y "bin \ development \ whee.config" "TestConnectionExternal \ bin \ Debug \"


สมมติว่าสิ่งนี้จะทำงานในสภาพแวดล้อมเฉพาะ (เช่นมีบางอย่างที่ไม่เคยเป็น whee.config ในโฟลเดอร์ต้นทาง) เพื่อทำซ้ำรหัสของ OP ไม่ควรรวมถึงการเปลี่ยนชื่อกลับไปเป็นชื่อเดิมใช่ไหม ren "bin\development\whee.config" whee.config.example
GlennFromIowa

0

ใส่เครื่องหมายดอกจัน (*) ที่ท้ายเส้นทางปลายทางเพื่อข้ามข้อพิพาทของ D และ F

ตัวอย่าง:

xcopy "compressionOutput.xml" "../../ เรียกใช้สคริปต์ / APIAutomation / Libraries / rerunlastfailedbuild.xml *"


0

xxxxxxxxxxxxxx ระบุชื่อไฟล์หรือชื่อไดเรกทอรีบนเป้าหมายหรือไม่

(F = file, D = directory)? D

if a File : (echo F)
if a Directory (echo D)

0

ฉันพบปัญหาเดียวกันเมื่อพยายามคัดลอกไฟล์ด้วยชื่อใหม่เฉพาะเมื่อไฟล์ไม่มีอยู่ในปลายทางหรือมีอยู่ (ด้วยชื่อใหม่) แต่เก่ากว่า ทางออกคือการเพิ่ม*ถ่านที่ส่วนท้ายของชื่อไฟล์ปลายทาง ตัวอย่าง:

xcopy "C:\src\whee.config.txt" "C:\dest\bee.config.txt*" /D /Y

มันทำงานได้อย่างมีเสน่ห์ขอบคุณ
E.Big

-2

คุณไม่สามารถระบุได้ว่าเป็นไฟล์เสมอ ถ้าคุณไม่จำเป็นต้องมีคุณสมบัติอื่น ๆ ของ xcopy ทำไมไม่เพียงใช้เป็นประจำcopy?


5
เหตุผลหนึ่งคือcopyการเป็นคำสั่งภายในไม่ได้ตั้งค่า ErrorLevel XCOPYหากคุณต้องการที่จะสามารถมีอิทธิพลต่อเส้นทางของไฟล์ชุดถ้าข้อผิดพลาดสำเนาเกิดขึ้นคุณจำเป็นต้องใช้
rossmcm

2
อีกเหตุผลคือถ้าคุณต้องการใช้คุณสมบัติอื่น ๆ ของ xcopy เช่น / d
Victoria
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.