วิธีแสดงรายการไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีที่กำหนดพร้อมเส้นทางแบบเต็ม แต่ไม่สามารถเรียกซ้ำได้


14

อย่างใดdir /bคำสั่งชอบแต่ฉันต้องการยังซ่อนและไฟล์ระบบที่นั่น คำสั่ง dir ในตัวไม่อนุญาตให้แสดงรายการไฟล์ 'ซ่อน' ที่เหลือและฉันต้องใช้/sเพื่อให้มีพา ธ เต็มในนั้นซึ่งแน่นอนว่าไม่สามารถเรียกซ้ำได้

ฉันยังเล่นด้วยlsคำสั่งเวอร์ชัน windows และไม่มีโชค ในการแสดงเส้นทางแบบเต็มคุณจะต้องเพิ่มเครื่องหมายดอกจัน ( mydir\*) ที่ท้ายไดเรกทอรีที่คุณอยู่ในรายการ แต่สิ่งนี้จะทำให้เกิดซ้ำได้


1
ฉันสามารถแก้ปัญหาบางส่วนของคุณได้: / a flag ทำให้ dir รวมไฟล์ที่ซ่อนไว้และระบบ
แฮร์รี่จอห์นสตัน

คำตอบ:


9

หากคุณไม่ต้องการติดตั้งอะไรคุณสามารถใช้คำสั่งต่อไปนี้:

for /f "delims=" %a in ('cd') do @for /f %b in ('dir /b /a') do @echo %a\%b

คุณต้องcdเข้าไปในไดเรกทอรีก่อนไม่เช่นนั้นจะไม่ทำงาน


2
หรือนี่! สำหรับ / f "delims ="% b ใน ('dir / b / a') ทำ
@echo

คุณช่วยอธิบายได้โปรดว่าคำสั่งนี้ทำงานอย่างไร
rubo77

18

ลองคำสั่งต่อไปนี้:

dir /s /b /a

มันจะให้ไฟล์ทั้งหมดคุณสามารถเรียกใช้ผ่านFINDถ้าคุณต้องการหรือเพิ่มชื่อโฟลเดอร์


1

หากคุณลอง ls ทำไมไม่ติดตั้ง cygwin? คุณสามารถใช้ find ใน cygwin:

find -name "*"

หากคุณติดตั้ง cygwin และต้องการใช้ find ใน cygwin ตรวจสอบให้แน่ใจว่าการค้นหาใน cygwin นั้นถูกเรียกใช้โดยใช้เส้นทางแบบเต็มหรือแทรกเส้นทาง cygwin bin ก่อนหน้า system32 เนื่องจาก Windows มี find.exe ด้วย


ฉันตรวจสอบ unixutils แล้ว find is แบบเรียกซ้ำ :(
rsk82

2
@ rsk82: ด้วย-maxdepth 1ไม่ใช่
เดนนิส

0

คุณสามารถดาวน์โหลด sed ด้วย gnuwin32 สิ่งนี้เป็นการผนวกไดเรกทอรีปัจจุบัน

ทำซีดี%% ไม่ทำงาน .. เพื่อ%cd:\=\\%แปลงทุก\การซึ่งผลในการ\\\

C:\WINDOWS>dir /b | sed "s/^/%cd:\=\\%\\/" 
C:\WINDOWS\0.log
C:\WINDOWS\003109_.tmp
C:\WINDOWS\addins

0

นี่เป็นคำถามเก่า แต่ฉันคิดว่าฉันจะเพิ่มอะไรก็ได้

DIR ไม่สำรวจโครงสร้างไดเรกทอรีที่คุณต้องการอย่างถูกต้องโดยเฉพาะกับไดเรกทอรี C: มันยอมแพ้ในสถานที่เพราะมีการป้องกันที่แตกต่างกัน

ATTRIB ทำงานได้ดีขึ้นมากเพราะหาได้มากกว่า (เพราะเหตุใดความแตกต่างนี้เพราะเหตุใด MS จะทำให้ยูทิลิตี้หนึ่งทำงานได้หนึ่งอย่างและอีกอันทำงานต่างกันในแง่นี้หรือไม่เคราะห์ร้ายถ้าฉันรู้) จากประสบการณ์ของฉันวิธีที่มีประสิทธิภาพที่สุดในการจัดการสิ่งนี้

attrib /s /d C:\ >%TEMP%\C-with-directories.txt

attrib /s C:\ >%TEMP%\C-without-directories.txt

และรับความแตกต่างระหว่างพวกเขา ความแตกต่างนั้นคือไดเรกทอรีบน C: (ยกเว้นไดเรกทอรีที่ซ่อนอยู่ด้วย) สำหรับ C: ฉันมักจะทำสิ่งนี้ในฐานะผู้ดูแลระบบ


0

ฉันต้องการทำงานกับรายชื่อไดเรกทอรีดังนั้นฉันจึงใช้ Google "พิมพ์ไดเรกทอรี" ฉันพบคำแนะนำในการทำเช่นนั้น แต่รวมถึงการเปลี่ยนแปลงในรีจิสทรี ไม่ต้องการทำสิ่งนี้และต้องการใช้รายชื่อไม่พิมพ์ออกมาฉันพบวิธีในการบรรลุเป้าหมายโดยไม่ต้องเปลี่ยน Registry ฉันสร้างโปรแกรมแบทช์สองไฟล์เพื่อบันทึกใน Utility Directory จากนั้นเมื่อฉันต้องการพิมพ์หรือทำงานกับไดเรกทอรีฉันเพียงคัดลอกไฟล์แบตช์ที่เหมาะสมลงในไดเรกทอรีหัวเรื่องแล้วรันมัน! ที่นี่พวกเขาคือ:

rem PrintThisDirectory.bat
rem Prints the directory where it resides
@echo off
dir %1/-p/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"

Rem ShowThisDirectory.bat
Rem Displays in Notepad the Directory where it resides
@echo off
dir %1/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.