คุณจะทำให้ Windows 7 เป็นตัวพิมพ์เล็กและใหญ่ได้อย่างไรเกี่ยวกับระบบไฟล์?


37

ฉันต้องการทำให้ Windows 7 เป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่ออ่าน / เขียนอะไรบนฮาร์ดไดรฟ์ (ไดรฟ์ C หรือไดรฟ์ NTFS อื่น ๆ )

ฉันพบวิดีโอผ่าน google ที่แจ้งว่าจะเปลี่ยนรีจิสตรีคีย์

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath

ค่า 1 ( แหล่งที่มา )

ฉันยังพบรายการสนับสนุน Windows ที่ระบุบางอย่างเกี่ยวกับการแก้ไขคีย์รีจิสทรี

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive

ที่ทำให้ฉันคิดว่าการใส่ค่า 0 จะทำให้ Windows เป็นกรณี ๆ ไปกับระบบไฟล์ NTFS ( แหล่งที่มา )

ฉันมีความรู้สึกว่าคำตอบที่สองคือคำตอบ แต่ฉันไม่แน่ใจและฉันไม่ต้องการลองโดยไม่แน่ใจ

ไม่มีใครรู้ว่าเป็นวิธีที่ถูกต้องในการทำให้ Windows 7 เป็นตัวพิมพ์เล็กหรือใหญ่เมื่ออ่าน / เขียนไปยังไดรฟ์ C (และไดรฟ์ NTFS อื่น ๆ )

คำตอบ:


25

คุณสามารถกำหนดค่าHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveรีจิสตรีให้0เป็นอย่างที่ผู้เขียนคนอื่นแนะนำ สร้างไฟล์ที่ชื่อadd.regด้วยเนื้อหาต่อไปนี้และเรียกใช้

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

จากนั้นใช้Cygwinเพื่อทำงานกับชื่อไฟล์ที่คำนึงถึงขนาดตัวพิมพ์

ในการทำเช่นนั้นคุณจะต้องติดตั้งระบบไฟล์ NTFS พร้อมposix=1ตัวเลือกในของคุณ/etc/fstabตามที่บทความนี้แนะนำ นี่เป็นตัวอย่างจากฉันfstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

เมื่อทำเสร็จแล้วคุณจะสามารถจัดการกับชื่อไฟล์ที่ใช้ตัวอักษรพิมพ์bashเล็กmcและตัวพิมพ์เล็กgitฯลฯ


6
คุณต้องรีสตาร์ทเพื่อให้สิ่งนี้มีผล
วิลเลียม

2
@ วิลเลียม: ฉันเชื่อว่าคุณจะต้องยุติกระบวนการและบริการCygwinทั้งหมด(เช่นApache , sshd , ฯลฯ ) ที่ควรจะเพียงพอเช่นเดียวกับที่cygwin1.dllจะถูกขนออกจาก RAM
เบส

3
ฉันกำลังพูดถึงHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive support.microsoft.com/en-us/kb/929110
วิลเลียม

16

ในการสร้างไฟล์ 2 ไฟล์ที่มีชื่อเหมือนกัน แต่มีหลายกรณีในไดเรกทอรีเดียวกันคุณจำเป็นต้องติดตั้ง Unix Services 3.5 แต่ใช้งานได้กับ Windows 32 บิตเท่านั้น จากนั้นคุณต้องเรียกใช้ "C Shell" เพื่อสร้างไฟล์ คุณไม่สามารถสร้างไฟล์ผ่านทาง explorer เมื่อสร้างแล้ว Explorer จะไม่เล่นกับไฟล์ได้ดี หากคุณไปเปลี่ยนชื่ออันที่สองเคอร์เซอร์จะกระโดดไปที่อันแรก นอกจากนี้แอปพลิเคชันส่วนใหญ่สามารถเปิดไฟล์ได้เพียงไฟล์เดียวเท่านั้นเนื่องจากคาดว่าระบบไฟล์จะไม่ตรงตามตัวพิมพ์ใหญ่ - เล็ก หากคุณติดตั้ง Cygwin แบบ 64 บิตและเปลี่ยนเป็นแบบตรงตัวพิมพ์

ฉันพยายามเลียนแบบระบบไฟล์ที่ตรงตามตัวพิมพ์ใหญ่ - เล็กของ Linux เพื่อการดีบักในระหว่างการพัฒนา ดูเหมือนว่าวิธีที่ดีกว่าคือการใช้ VMWare กับอินสแตนซ์ของ Ubuntu เพื่อการพัฒนา


"ใช้ VMWare กับอินสแตนซ์ของ Ubuntu เพื่อการพัฒนา" => ไม่ใช่กรณีที่มีเกม
ПетърПетров

16

การตั้งค่าทั้งหมดเหล่านี้ที่คุณสามารถค้นหาบนเว็บสำหรับNFSไม่ใช่สำหรับNTFS (สังเกตความแตกต่าง)!

NFS (Network File System) เป็นโปรโตคอลเครือข่าย

ดังนั้นการเปลี่ยนรีจิสตรีคีย์HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive จะไม่เปลี่ยนแปลงสิ่งที่คุณต้องการ

NTFSคำนึงถึงขนาดตัวพิมพ์แต่Windows API ไม่ใช่เท่านั้นจะจำได้เฉพาะชื่อไฟล์เท่านั้น นี่หมายถึงว่าแม้จะมีไฟล์ของคุณจะปรากฏเป็นAbC.TXTมันก็ยังคงสามารถเข้าถึงได้โดยและabc.txt aBc.TxTนี่เป็นข้อ จำกัด ของ Windows ไม่ใช่ NTFS

อีกส่วนหนึ่งHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPathจะปิดการทำงานปกติของชื่อไฟล์ดั้งเดิม 8.3 ที่ใช้โดย DOS (ซึ่งเป็นตัวพิมพ์ใหญ่ทั้งหมด) เมื่อเปิดใช้งาน (ค่าเริ่มต้น) ABC.TXTจะปรากฏเป็นAbc.txtรูปแบบอื่น ๆ ทั้งหมด แต่ยังคงสามารถเข้าถึงได้

เพื่อความแม่นยำมากขึ้น:

จริงๆแล้วมันขึ้นอยู่กับซอฟต์แวร์ที่เข้าถึง FS

หากใช้ WIN32 API (ซึ่ง 99.9% ของซอฟต์แวร์ทำ) จะไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ตามที่คุณทำ ซอฟต์แวร์ในตัวทั้งหมดใน Windows (เช่น Explorer, พรอมต์คำสั่ง, Internet Explorer และอื่น ๆ ) และซอฟต์แวร์สำหรับผู้บริโภคทั้งหมดนั้นใช้ WIN32 และไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

บริการ NFS, Java และอื่น ๆ เป็น POSIX และพวกเขาจะปฏิบัติตามการตั้งค่ารีจิสทรี 'obcaseinsensitive' อย่างไรก็ตามการปิดตัวเลือกอาจทำให้คุณมีปัญหามากขึ้นเนื่องจากซอฟต์แวร์นี้สามารถสร้างไฟล์ที่ไม่สามารถเข้าถึงได้จาก Windows เองและซอฟต์แวร์ Win32 อื่น ๆ


3
อันที่จริงแล้วในระดับ FS ก่อนการประมวลผลเพิ่มเติมมันจะตรงตามตัวพิมพ์ใหญ่ - เล็กอย่างไรก็ตาม NTFS แปลชื่อไฟล์ทั้งหมดเป็นตัวพิมพ์ใหญ่ทั้งหมดและเมื่อป้อนด้วยอักขระตัวพิมพ์เล็กให้แปลเป็นตัวพิมพ์ใหญ่แล้วค้นหาไฟล์ดังกล่าว (ดูที่support.microsoft.com/ kb / 103657 )
Jeff F.

คุณพูดถูก ฉันแค่พยายามอธิบายให้ง่ายขึ้น
venimus

ดังนั้นจาวารุ่นที่ใช้ Win32 จึงประสบความสำเร็จในการค้นหา "SHORT.class" กับ "Short.class" ได้อย่างไรหากอยู่ในไดเรกทอรีเดียวกัน ฉันไม่อยากจะเชื่อว่าไม่มีการเรียกร้องให้ทำเช่นนี้
Ira Baxter

ฉันคิดว่าเพราะ Java เป็น POSIX
venimus

2
ฉันค่อนข้างแน่ใจว่ารันไทม์ Java มาตรฐาน (เช่นจาก Oracle) ไม่ตรงตามตัวพิมพ์ใหญ่ - เล็กบน Windows ถ้าคุณพยายามที่จะนำSHORT.classและShort.classในไดเรกทอรีเดียวกันก็จะไม่ทำงาน (แน่นอนว่าถ้าพวกเขาอยู่ในไฟล์. jar นั้นไม่มีปัญหา)
Harry Johnston

4

ฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา:

http://www.chilkatsoft.com/p/p_454.asp

หน้านี้แนะนำให้ตั้งค่าHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveเป็น 0 เพื่อให้ตรงตามตัวพิมพ์ใหญ่ - เล็ก ฉันคิดว่าคุณพบสิ่งนี้มาแล้วและนี่เป็นวิธีมาตรฐานในการทำ (แม้แต่ Microsoft KB ที่คุณพบก็แนะนำให้ใช้)

ดูเหมือนว่าคุณจะต้องเปลี่ยนการตั้งค่าเคอร์เนล ระวังการอัพเดท

แก้ไข: ระวังแม้ว่าบางโปรแกรมอาจขึ้นอยู่กับความรู้สึกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

แก้ไข: คุณอาจใช้พาร์ติชัน UDF ระบบไฟล์นี้เล็กและฉันคิดว่ามันทำงานได้ทั้งบน Windows และ Linux

ดูนี้และนี้


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

ทั้งหน้าเป็นเพียงย่อหน้าเดียว ฉันจะทำการแก้ไขอย่างรวดเร็ว
beatgammit

ขอบคุณ tjameson เกี่ยวกับโปรแกรมที่อาจขึ้นอยู่กับ case insensitivity นี่เป็นปัญหาใหญ่ โปรแกรมอาจมองหา "WINDOWS" และไม่พบเพราะเป็น "Windows" จริง ๆ ตอนนี้ใช่ไหม ยิงฉันกำลังพยายามหาวิธีคัดลอกสิ่งต่าง ๆ จาก Linux ไปยัง Windows และฉันพบว่าตัวเองอยู่ในสถานการณ์ที่มีโฟลเดอร์ที่มีการสะกดคำเดียวกันกับตัวพิมพ์ใหญ่ต่างกันในที่เดียว
trusktr

สิ่งเดียวที่ฉันนึกได้คือการขัดแย้งกันด้วยตนเอง หากคุณคัดลอกไฟล์ Windows ควรถามคุณว่าคุณต้องการผสานหรือสร้างสำเนาหรือบางสิ่งบางอย่าง ฉันจำไม่ได้ (ฉันเป็นลินุกซ์)
beatgammit

ตามบทความนี้ใช้งานได้กับระบบย่อยที่ไม่ใช่ Win32 เท่านั้นจึงไม่สามารถใช้กับ NTFS ได้
harrymc

4

สิ่งที่ Microsoft กล่าวเกี่ยวกับ NTFS และการเปลี่ยนความไวของตัวพิมพ์เล็ก

ดูเหมือนว่าคุณไม่จำเป็นต้องเปลี่ยนเคอร์เนลเพื่ออนุญาตการค้นหาขนาดตัวพิมพ์เล็กและใหญ่บนเครือข่าย

http://technet.microsoft.com/en-us/library/cc783185(WS.10).aspx

.

การกำหนดค่า case sensitive สำหรับชื่อไฟล์และโฟลเดอร์

ใช้กับ: Windows Server 2003 R2

ในการกำหนดค่าความไวตัวพิมพ์เล็กสำหรับชื่อไฟล์และโฟลเดอร์โดยใช้อินเตอร์เฟส Windows เปิด Microsoft Services สำหรับระบบไฟล์เครือข่าย: คลิกเริ่มเลือกโปรแกรมเลือกเครื่องมือการดูแลระบบจากนั้นคลิกบริการของ Microsoft สำหรับระบบไฟล์เครือข่าย

หากจำเป็นให้เชื่อมต่อกับคอมพิวเตอร์ที่คุณต้องการจัดการ

คลิกขวาเซิร์ฟเวอร์สำหรับ NFS แล้วคลิกคุณสมบัติ

คลิกที่แท็บการจัดการชื่อไฟล์

เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:

หากต้องการเปิดใช้งานการค้นหาไฟล์และชื่อไดเรกทอรีโดยคำนึงถึงตัวอักษรใหญ่เล็กให้เลือกช่องทำเครื่องหมายเปิดใช้งานการค้นหาตามตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

หากต้องการปิดใช้งานการค้นหาไฟล์และชื่อไดเรกทอรีโดยคำนึงถึงตัวอักษรใหญ่เล็กให้ล้างกล่องกาเครื่องหมายเปิดใช้งานการค้นหาตามตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

คลิกนำไปใช้

สิ่งสำคัญการเปลี่ยนแปลงเหล่านี้จะไม่มีผลจนกว่าจะรีสตาร์ทเซิร์ฟเวอร์สำหรับ NFS สำหรับข้อมูลเกี่ยวกับวิธีหยุดและเริ่มต้นเซิร์ฟเวอร์สำหรับ NFS โปรดดูที่การเริ่มต้นและการหยุดเซิร์ฟเวอร์สำหรับ NFS คุณต้องปิดการใช้งานตัวพิมพ์เล็กและตัวพิมพ์เล็กของ Windows เพื่อให้เซิร์ฟเวอร์สำหรับ NFS รองรับชื่อไฟล์ คุณสามารถปิดการใช้งาน case-insensitivity ของเคอร์เนลของ Windows โดยการล้างคีย์รีจิสทรีต่อไปนี้เป็น 0: Manager \ kernel DWORD“ HKL \ SYSTEM \ CurrentControlSet \ Control \ Session \ Manager \ kernel \ DWORD "obcaseinsensitive"

เมื่อต้องการกำหนดค่า case sensitive สำหรับชื่อไฟล์และโฟลเดอร์โดยใช้บรรทัดคำสั่งเปิดพรอมต์คำสั่ง

หากต้องการเปิดใช้งานการพิจารณาตัวพิมพ์เล็กและตัวพิมพ์:

เซิร์ฟเวอร์ nfsadmin [ComputerName] config casesensitivelookups = ใช่

หากต้องการปิดใช้งานการตอบสนองของตัวพิมพ์เล็กและระบุทางเลือกของชื่อไฟล์ที่ส่งคืนโดยเซิร์ฟเวอร์สำหรับ NFS ที่พร้อมท์คำสั่งให้พิมพ์ดังต่อไปนี้:

เซิร์ฟเวอร์ nfsadmin [ชื่อคอมพิวเตอร์] config casesensitivelookups = no [ntfscase = {upper | ต่ำกว่า | รักษา}]

อาร์กิวเมนต์> ชื่อคอมพิวเตอร์ = ชื่อของคอมพิวเตอร์ที่คุณต้องการกำหนดค่า

สิ่งสำคัญการเปลี่ยนแปลงเหล่านี้จะไม่มีผลจนกว่าจะรีสตาร์ทเซิร์ฟเวอร์สำหรับ NFS สำหรับข้อมูลเกี่ยวกับวิธีหยุดและเริ่มต้นเซิร์ฟเวอร์สำหรับ NFS โปรดดูที่การเริ่มต้นและการหยุดเซิร์ฟเวอร์สำหรับ NFS

หมายเหตุตัวเลือก ntfscase ตั้งค่าความไวตัวพิมพ์เล็กสำหรับระบบไฟล์ NTFS ความไวของกรณีเริ่มต้นคือการรักษา (รักษากรณี) หากต้องการดูไวยากรณ์ทั้งหมดสำหรับคำสั่งนี้ที่พร้อมท์คำสั่งให้พิมพ์: nfsadmin server /?

.


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

1
จากนั้นเขาจะต้องทำการแฮกรีจิสทรี
Moab

นำไปใช้กับ: Windows Server 2008 R2
Behrouz.M

3

รัฐของ Microsoft ;

ใน NTFS ชื่อรักษาเคส แต่ไม่คำนึงถึงขนาดตัวพิมพ์
NTFS ไม่จำแนกชื่อไฟล์ตามกรณี

การอนุญาตให้ใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน Windows จะอนุญาตให้มัลแวร์สร้างไฟล์ที่ผู้ใช้ไม่สามารถเข้าถึงหรือลบได้ดังนั้นจึงไม่ได้รับอนุญาตด้วยเหตุผลที่ดี

ในกรณีใด ๆ ฉันค่อนข้างแน่ใจว่าถ้าคุณจัดการเพื่อให้เป็นกรณี ๆ ไป NTFS, Windows จะผิดพลาดและติดตั้งใหม่จะเป็นทางออกเดียว


นอกจากนี้คุณยังถูกต้องว่ามันนำเสนอปัญหาด้านความปลอดภัยถ้าคุณทำ "ตัวอย่างเช่นรุ่นของ edit.exe ที่ติดไวรัสโปรแกรมโทรจันประเภทม้าโทรจันและชื่อ EDIT.EXE สามารถจัดเก็บไว้ในไดเรกทอรีเดียวกันกับ edit.exe หากผู้ใช้พิมพ์คำสั่ง Windows พร้อมรับคำสั่ง สามารถดำเนินการรุ่น Trojan horse (EDIT.EXE) แทนรุ่นมาตรฐาน ".. technet.microsoft.com/en-us/library/cc732389.aspx
Moab

มันอาจจะไม่ขัดข้อง Windows เว้นแต่คุณจะเปลี่ยนชื่อไฟล์ / โฟลเดอร์สำคัญ ฉันค่อนข้างแน่ใจว่า Windows ทำให้แน่ใจว่าใช้ตัวพิมพ์ที่ถูกต้องจริง ๆ แล้วพวกเขายังแนะนำให้ใช้ด้วย
beatgammit

อืมนั่นเป็น tjameson ที่น่าสนใจ คุณสามารถให้ลิงค์ไปยังคำแนะนำนั้นได้หรือไม่?
trusktr

11
หากมัลแวร์เข้าถึงการเขียนลงดิสก์ของคุณคุณมีปัญหาใหญ่ว่าระบบไฟล์ของคุณนั้นเล็กหรือไม่ #redherring
Leopd

3
Registry เต็มไปด้วยข้อมูลอ้างอิงเกี่ยวกับไฟล์ระบบที่มีการใช้งานเคสที่ไม่สอดคล้องกัน ตัวพิมพ์เล็ก - ใหญ่อาจทำให้เกิดการแตกหักได้
kreemoweet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.