Powershell Copy-Item วนซ้ำ แต่ไม่มีชื่อโฟลเดอร์


20

นี่เป็นคำถามงี่เง่า แต่ฉันไม่รู้ว่าทำไมมันไม่ทำงาน

ฉันพยายามคัดลอกไฟล์จาก FolderA ไปยัง FolderB ซ้ำ ฉันกำลังทำสิ่งนี้:

Copy-Item -Path "C:\FolderA\" -Destination "C:\FolderB\" -recurse -Force -Verbose

มันใช้งานได้ดีไม่มีปัญหา

ยกเว้นผลลัพธ์ใน FolderB คือ:

C:\FolderB\FolderA\file.txt

ในขณะที่ฉันต้องการที่จะเป็น:

C:\FolderB\file.txt

ฉันหายตัวไปอย่างชัดเจนอะไรโง่ ๆ


4
คุณกำลังทำอะไรโง่คัดลอกรายการเป็นเพียง PITA
StingyJack

คำตอบ:


28

คำสั่งของคุณกำลังบอก PowerShell ให้คัดลอกโฟลเดอร์ด้วยเนื้อหาทั้งหมดไปยังโฟลเดอร์ปลายทาง หากต้องการคัดลอกเฉพาะเนื้อหาของโฟลเดอร์ต้นฉบับเปลี่ยนเส้นทางของคุณดังนี้:

Copy-Item -Path "C:\FolderA\*" -Destination "C:\FolderB\" -recurse -Force -Verbose

สังเกตุเครื่องหมายดอกจัน (*) หลังชื่อโฟลเดอร์ สิ่งนี้จะคัดลอกเนื้อหา (รวมถึงโฟลเดอร์ย่อย) ของโฟลเดอร์ แต่จะไม่คัดลอกโฟลเดอร์ไปยังโฟลเดอร์ปลายทาง

ใช้ Cmdlet คัดลอกรายการ


2
โปรดทราบว่านี่จะไม่คัดลอกโครงสร้างโฟลเดอร์หากไม่มีโฟลเดอร์ปลายทาง การโทรmd "C:\FolderB"มาก่อนCopy-Itemดูเหมือนจะหลีกเลี่ยงปัญหานี้
zett42

การสร้างความคิดเห็นของ @ zett42 ด้านบนหากโฟลเดอร์ปลายทางยังไม่มีอยู่ดูเหมือนว่าCopy-Itemจะสร้างโครงสร้างโฟลเดอร์ใหม่ แต่ลดระดับลงหนึ่งระดับ (เช่นC:\FolderA\B\Cคัดลอกไปที่C:\FolderB\Cแทนที่จะเป็นC:\FolderB\B\C) และอาจล้มเหลวเมื่อมีโฟลเดอร์ย่อยหลายโฟลเดอร์ ตรวจสอบให้แน่ใจเสมอว่ามีโฟลเดอร์ปลายทางอยู่ก่อนเรียกใช้ Copy-Item มันมีกลิ่นเหมือนแมลง (ฉันไม่เห็นเหตุผลว่าทำไมพฤติกรรมที่ไม่สอดคล้องกันนี้เป็นที่ต้องการ)
Marc Durdin


0

คุณสามารถใช้-File -Recurseสำหรับการคัดลอกเฉพาะไฟล์ที่เรียกซ้ำ:

คัดลอกรายการ -Path "C: \ แหล่งที่มา" -Destination "C: \ Dest" - เก็บไฟล์ - เรียกเก็บเงิน - บังคับ -Verbose

หรือใช้-Directory -Recurse เพื่อคัดลอกโครงสร้างโฟลเดอร์ empy เท่านั้น:

คัดลอกรายการ - แพท "C: \ Source" -Destination "C: \ Dest" -Directory -recurse -Force -Verbose

ขอแสดงความนับถือ,

Paul Pedroza


-1
Copy-Item -Path "C:\FolderA" -Destination "C:\FolderB" -recurse -Force -Verbose

ก็จะได้ผล


1
สิ่งนี้ดูเหมือนจะเป็นความคิดเห็นของคำตอบที่คล้ายกันของ FastEthernet หากคุณต้องการเสนอคำตอบอื่นคุณควรอธิบายว่าทำไมคำตอบนั้นถึงตอบคำถาม
Blackwood

สิ่งนั้นจะสร้าง C: \ FolderB ถ้ามันไม่มีอยู่ - แต่สร้าง C: \ FolderB \ FolderA ถ้า C: \ FolderB นั้นมีอยู่ หากคุณเรียกใช้คำสั่งนั้นสองครั้งคุณจะได้รับสำเนาสองอย่างของทุกสิ่งในที่ต่างกันเล็กน้อย! อาการปวดมาก.
Lamarth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.