กำหนดค่า Windows ให้ปฏิบัติต่อ '.' ไดเรกทอรีที่ซ่อนอยู่


6

เครื่องมือข้ามแพลตฟอร์มจำนวนมากใช้การประชุม unix ของชื่อไดเรกทอรีนำหน้าด้วยระยะเวลาเพื่อระบุว่าเป็นไดเรกทอรีเมตาและไม่ควรรวมอยู่ในรายชื่อไฟล์และการค้นหาไดเรกทอรี มีวิธีการกำหนดค่า Windows เพื่อให้การปฏิบัติต่อไดเรกทอรีที่มีระยะเวลาชั้นนำราวกับว่าพวกเขามีการใช้คุณลักษณะ 'ซ่อน'?

คำตอบ:


4

คุณไม่สามารถทำได้ด้วยวิธีปกติ บางทีด้วยซอฟต์แวร์บางอย่าง ...

ด้านล่างคุณสามารถดูวิธีการ - ไม่ใช่วิธีที่ดีที่สุด แต่ทำด้วยตนเองสำหรับกรณีเฉพาะของคุณ สำหรับทั้งสองกรณีคุณต้องซ่อนไฟล์ที่มีแอตทริบิวต์ที่ซ่อนอยู่ใน Windows Explorer> เครื่องมือ> โหมดดู:

  • คำสั่ง Dos (คุณสามารถสร้างแบทช์แทนที่อักขระ% แต่ละตัวด้านล่างด้วย %% และใช้เพื่อเริ่มต้นแต่ละครั้งที่ Windows เริ่มทำงานหรือเมื่อคุณต้องการใช้ "attrib + h + s" หากคุณต้องการแสดงไฟล์ที่ซ่อนอยู่ แต่ซ่อน ไฟล์ระบบหากคุณต้องการใช้กับไฟล์ให้ลบ / ad พารามิเตอร์จาก dir):

    for /f "delims=" %i in ('dir /s /b /ad ".*"') do attrib +h "%i"
    
  • Windows Search (สำหรับ Windows 7 คุณต้องเปิดใช้การค้นหาแบบคลาสสิก): ค้นหาสตริง ". *" จากนั้นคลิกเมาส์ขวาที่ไดเรกทอรีและทำเครื่องหมาย "ซ่อน" (ใช้วิธีนี้คุณไม่สามารถเพิ่มแอตทริบิวต์ของระบบ)


1

ฉันไม่คิดว่าจะมีวิธีใดที่จะทำเช่นนี้ - Windows ไม่ได้ให้คุณตั้งชื่อไฟล์แบบนั้นจากใน Explorer (คุณต้องมีพรอมต์คำสั่ง) ดังนั้นฉันไม่คิดว่ามันจะเป็นมิตรต่อการปฏิบัติต่อพวกเขา ซ่อน :(


มันช่วยให้คุณถ้าคุณรู้เคล็ดลับ เพียงใช้. name และคุณจะสร้างโฟลเดอร์. name ทำงานได้ตั้งแต่ Windows 7 ขึ้นไปและอาจอยู่ใน Vista แต่ใครจะเป็นห่วง Vista ...
PSIXO

1

คุณไม่สามารถทำได้โดยทั่วไปใน Windows ไฟล์ที่ซ่อนอยู่ใน Windows นั้นพิจารณาจากคุณสมบัติแทนที่จะเป็นแบบแผนชื่อ นั่นเป็นเพียงหิน สิ่งที่ดีที่สุดที่คุณจะได้รับคือการใช้เครื่องมือ GNUเช่นlsเดียวกับที่ทำงานบน Windows เช่นเดียวกับที่ใช้บน * nix


0

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

YourPSPrompt>> ls | ? {$_.name -match "^\.(.)*"} | % {attrib.exe +h $_.name}
YourPSPrompt>> ls | ? {$_.name -match "^_(.)*"} | % {attrib.exe +h $_.name}

-1

ฉันคิดว่าเหตุผลที่คุณไม่สามารถทำได้เพราะใน Windows ช่วงเวลาเดียวหมายถึง "ไดเรกทอรีปัจจุบัน" ดังนั้น. \ .. \ SiblingFolderหมายความว่าเหมือนกับ.. \ SiblingFolder


ใช่จุดเดียว ( .) หมายถึง "ไดเรกทอรีปัจจุบัน" และสองช่วงเวลา ( ..) หมายถึง "ไดเรกทอรีหลัก" ใน Unix เช่นกัน เมื่อคุณทำรายการไดเรกทอรีคุณมักจะซ่อน / ไม่สนใจไดเรกทอรี "เสมือน" เหล่านั้น แต่อย่างน้อยใน Unixes รุ่นแรก ๆ พวกเขาไม่ใช่ไดเรกทอรีเสมือนจริง แต่เป็นฮาร์ดลิงก์และดังนั้นรายการระบบไฟล์ทั่วไปเช่นไฟล์และไดเรกทอรีอื่น ๆ lsซ่อนคำสั่ง.และ..โดยเริ่มต้น แต่ยังซ่อนไฟล์อื่น ๆ หรือไดเรกทอรีที่มีชื่อที่ขึ้นต้นด้วย.(เช่น.foo) โปรแกรม Unix หลายโปรแกรมใช้ประโยชน์จากคุณสมบัตินี้เพื่อ "ซ่อน" ไฟล์ conf ในโฮมไดเร็กตอรี่ของผู้ใช้
Daniel Pryden

@Daniel Pryden: ฉันคิดว่ามันแตกต่างกันไปตามเวอร์ชั่นของระบบปฏิบัติการใน Windows แต่อย่างน้อย MS Directory Services ก็กลับมาอีก และ..ในฟังก์ชั่นสแกน ฉันคัดกรองพวกเขาออกมาในรหัสของฉันโดยการตรวจสอบชื่อเฉพาะสองเหล่านั้น บางทีบริการ Unix ที่เกี่ยวข้องนั้นอาจคัดกรองให้คุณ - แต่ขี้เกียจเพียงตรวจสอบว่าคนแรกคือช่วงเวลา
FumbleFingers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.