Score:0

Windows CLI จะคัดลอกไปยังไดเร็กทอรีเดียวกันและเปลี่ยนเฉพาะตัวพิมพ์ของชื่อไฟล์ได้อย่างไร

ธง in

ฉันมี Windows 10 pro พร้อม NTFS ฉันคิดว่าระบบไฟล์นั้นคำนึงถึงตัวพิมพ์เล็กและใหญ่ทั้งหมด ฉันสามารถมีไฟล์ Bill_and_Ted.txt ในไดเร็กทอรี และเขียนสคริปต์ที่จะไม่ทำให้เข้าใจผิดว่าเป็น Bill_and_ted.txt แอป Linux WSL ที่เข้าถึงไดเร็กทอรี NTFS นั้นคำนึงถึงตัวพิมพ์เล็กและใหญ่ทั้งหมดแต่ดูเหมือนว่ายูทิลิตี้ Windows จะสับสน

ดังนั้น NTFS จึงอาจคำนึงถึงขนาดตัวพิมพ์ แต่ Windows อาจไม่ใช่ เป็นไปได้ไหมที่ Windows จะสร้างไฟล์สองไฟล์ในไดเร็กทอรีเดียวกันซึ่งแตกต่างกันเฉพาะในกรณี ASCII

ด้วยเหตุผลหลายประการในการพัฒนาซอฟต์แวร์ ฉันต้องการให้มีไฟล์ Bill_and_Ted.txt และ bill_and_ted.txt อยู่ในไดเร็กทอรีเดียวกัน จากนั้นเปลี่ยนเนื้อหา แต่ถึงตอนนี้ Powershell Copy-Item และ Windows xcopy ปฏิเสธที่จะคัดลอกไปยังไดเร็กทอรีเดียวกันเมื่อชื่อไฟล์แตกต่างกันเฉพาะในกรณีเท่านั้น พวกเขาล้มเหลวด้วย "ไม่สามารถคัดลอกไฟล์ไปยังตัวเอง"

มีวิธี Windows ในตัวในการคัดลอกไปยังไดเร็กทอรีเดียวกันและเปลี่ยนเฉพาะชื่อไฟล์หรือไม่?

Score:3

สิ่งนี้อาจเป็นประโยชน์

https://superuser.com/a/412413/1176865

ไปที่ไดเร็กทอรีและรันคำสั่งต่อไปนี้:

สำหรับ /f "Tokens=*" %f in ('dir /l/b/a-d') do (เปลี่ยนชื่อ "%f" "%f")

นี่คือรายละเอียดในกรณีที่มีคนต้องการแก้ไข/ปรับปรุง :

  • สำหรับ /ฉ - สำหรับทุกบรรทัด
  • "โทเค็น=*" - ประมวลผลแต่ละรายการในทุกบรรทัด
  • %f ใน (...) - %ฉ เป็นชื่อตัวแปรของคุณสำหรับทุกรายการ
  • ผบ - แสดงทุกไฟล์และไดเร็กทอรีย่อยในไดเร็กทอรี
  • /ล - (พารามิเตอร์สำหรับ dir) ใช้ตัวพิมพ์เล็ก
  • /ข - (พารามิเตอร์สำหรับ dir) ใช้รูปแบบเปล่า เฉพาะชื่อไฟล์/ไดเร็กทอรี ไม่มีขนาด ไม่มีส่วนหัว
  • /a-d - (พารามิเตอร์สำหรับ dir) ทำ ไม่ รายการ ไดเรกทอรี. ( หมายถึง คุณลักษณะ, - หมายถึง ไม่ และ หมายถึง ไดเรกทอรี).
  • เปลี่ยนชื่อ "%f" "%f"- เปลี่ยนชื่อไฟล์ด้วยชื่อของตัวเอง ซึ่งจริง ๆ แล้วตัวพิมพ์เล็กคือ ผบ คำสั่งและ /ล การผสมผสาน.
in flag
สมบูรณ์แบบ! ฉันลบคำตอบและโหวตของคุณเพราะมันดีกว่า คุณไม่จำเป็นต้องใส่วงเล็บรอบคำสั่ง `rename` (และฉันจะพิมพ์ `ren` เพราะฉันขี้เกียจ)
another victim of the mouse avatar
ขอบคุณที่แยกวิเคราะห์ให้ฉัน สมาธิสั้นของฉันตัดสินใจว่าฉันได้ให้พลังงานทางจิตเพียงพอแล้ว :พี
Score:1
ธง za

คำตอบสั้น ๆ คือ ตราบใดที่คุณใช้ windows มันจะไม่ทำงาน Windows API ไม่รองรับตัวพิมพ์เล็กและใหญ่

ในการอ้างอิงถึง : https://stackoverflow.com/questions/33998669/windows-ntfs-and-case-sensitivity

Score:0
ธง in

วิธีแก้ไขคือใช้ fsutil เพื่อเปิดใช้งาน setCaseSensitiveInfo ตั้งค่าสถานะบนไดเร็กทอรีที่มี ในกรณีของฉัน ฉันตั้งค่าตำแหน่งไปยังไดเร็กทอรีปลายทาง จากนั้นใช้:

ไฟล์ fsutil.exe เปิดใช้งาน setCaseSensitiveInfo (รับตำแหน่ง)

บทความ HowToGeek อธิบายการตั้งค่าสถานะ setCaseSensitiveInfo

ขอบคุณสำหรับ คำตอบ stackoverflow นี้!

โพสต์คำตอบ

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