पूर्ण पथ के साथ दी गई निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को कैसे सूचीबद्ध करें लेकिन पुनरावर्ती नहीं?


14

किसी तरह dir /bकमांड, लेकिन मुझे वहां भी छिपी और सिस्टम फ़ाइलों की आवश्यकता है। डीआईआर कमांड में निर्मित बाकी के साथ ऐसी 'छिपी हुई' फाइलों को सूचीबद्ध करने की अनुमति नहीं है और मुझे /sवहां पूर्ण पथ का उपयोग करना होगा, जो कि निश्चित रूप से गैर पुनरावर्ती है।

मैंने lsकमांड के विंडोज़ संस्करण के साथ भी खेला और कोई भाग्य भी नहीं था। पूर्ण पथ प्रदर्शित करने के लिए आपको mydir\*निर्देशिका के अंत में तारांकन चिह्न ( ) जोड़ना होगा , लेकिन यह इसे पुनरावर्ती बनाता है।


1
मैं आपकी समस्या का हिस्सा हल कर सकता हूं: / a ध्वज बनाता है dir में छिपी और सिस्टम फाइलें शामिल हैं।
हैरी जॉन्सन

जवाबों:


9

यदि आप कुछ भी स्थापित नहीं करना चाहते हैं, तो आप निम्न कमांड का उपयोग भी कर सकते हैं:

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

आपको cdपहले निर्देशिका में जाना होगा या यह काम नहीं करेगा।


2
या यह! for / f "delims ="% b in ('dir / b / a') do @echo% cd% \% b लेकिन तुम्हारा एक दिलचस्प तकनीक है, काफी सामान्य है
barlop

क्या आप कृपया समझा सकते हैं कि यह कमांड कैसे काम करता है?
रोटो 77

18

निम्नलिखित कमांड आज़माएं:

dir /s /b /a

यह सभी फ़ाइलें देगा, आप चाहें FINDतो इसे चला सकते हैं या फ़ोल्डर नाम जोड़ सकते हैं।


1

अगर आपने ls की कोशिश की, तो सिर्फ cygwin को क्यों नहीं स्थापित किया? आप साइबरविन में पा सकते हैं:

find -name "*"

यदि आप cygwin को स्थापित करते हैं और cygwin में फाइंड का उपयोग करना चाहते हैं, तो सुनिश्चित करें कि cygwin में फाइंड को पूर्ण पथ का उपयोग करके या तो कॉल किया जाता है या सिस्टम32 से पहले cygwin बिन पथ को सम्मिलित करें क्योंकि Windows में find.exe भी है।


मैंने unixutils की जाँच की, पाया पुनरावर्ती है :(
rsk82

2
@ rsk82: साथ -maxdepth 1, यह नहीं है।
डेनिस

0

आप gnuwin32 के साथ sed डाउनलोड कर सकते हैं। यह वर्तमान निर्देशिका को प्रस्तुत करता है।

% Cd% करने से काम नहीं चलता है .. इसलिए %cd:\=\\%हर \को धर्मान्तरित करता है \\, जिसके परिणामस्वरूप \

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

0

यह एक पुराना प्रश्न है, लेकिन मुझे लगा कि मैं किसी भी तरह कुछ जोड़ूंगा।

डीआईआर उन सभी निर्देशिका पेड़ों को सही ढंग से पीछे नहीं हटाता है जो आप चाहते हैं, विशेष रूप से सी पर नहीं। यह बस अलग-अलग सुरक्षा के कारण स्थानों में छोड़ देता है।

ATTRIB बहुत बेहतर काम करता है, क्योंकि यह अधिक पाता है। (यह अंतर क्यों? MS इस उपयोगिता को एक तरह से कैसे काम करेगा और दूसरा इस संबंध में अलग काम करेगा? अगर मुझे पता है तो धिक्कार है।) मेरे अनुभव में इसे संभालने का सबसे प्रभावी तरीका है, हालांकि यह एक कीचड़ है, दो लिस्टिंग प्राप्त करना है:

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

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

और उनके बीच अंतर प्राप्त करें। यह अंतर सी पर निर्देशिका है: (उन लोगों को छोड़कर जो बहुत अच्छी तरह से छिपे हुए हैं)। C के लिए :, मैं आमतौर पर इसे व्यवस्थापक के रूप में चला रहा हूं।


0

मैं एक निर्देशिका लिस्टिंग के साथ काम करना चाहता था, इसलिए मैंने "एक निर्देशिका प्रिंट करें" को गुगेल किया। मुझे ऐसा करने के निर्देश मिले, लेकिन उन्होंने रजिस्ट्री में बदलाव शामिल किया। इसके साथ डूडल नहीं करना चाहते हैं, और एक लिस्टिंग का उपयोग करना चाहते हैं, इसे प्रिंट नहीं करना चाहते हैं, मुझे रजिस्ट्री को बदले बिना अपने लक्ष्यों को पूरा करने का एक तरीका मिला। मैंने एक उपयोगिता निर्देशिका में सहेजे जाने के लिए दो बैच फ़ाइल प्रोग्राम बनाए। फिर, जब मैं किसी निर्देशिका के साथ प्रिंट करना या काम करना चाहता था, तो मैं उचित बैच फ़ाइल को विषय निर्देशिका में कॉपी करता हूं, फिर उसे निष्पादित करता हूं! वे यहाँ हैं:

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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.