2009-09-15 10 views
18

मैं सभी निर्देशिकाओं कि उस पैटर्न 20?????? पालन गिनती करने के लिए नीचे दिए गए आदेश है:बल्ले स्क्रिप्ट का उपयोग कर एक चर में कमांड अभिव्यक्ति के परिणाम को कैसे संग्रहीत करें?

'dir /b "20??????" | find /c "2"' 

उदाहरण के लिए, अगर मैं निम्न निर्देशिकाओं है, तो कमांड 6 वापसी होगी:

20090901 
20090902 
20090903 
20090904 
20090905 
20090906 

कैसे कर सकते हैं मैं एक चर में इस आदेश (6 forementioned उदाहरण में 6) के परिणाम स्टोर?

@echo off 
set wildcard=C:\*.* 
set count=0 
FOR /F %%a in ('DIR /B %wildcard%') do set /A count=count+1 
echo %count% files matching %wildcard% 
set choice= 
set /p choice=Press enter to continue ... 

उत्तर

38
set cmd="dir /b "20??????" | find /c "2" " 

FOR /F "tokens=*" %%i IN (' %cmd% ') DO SET X=%%i 
+18

दूसरों के लिए बस एक नोट जो इसका उपयोग कर रहे हैं: यदि यह बैच फ़ाइल के अंदर किया जाता है, '% i' को 'for' कमांड' में दोनों बार' %% i' के साथ प्रतिस्थापित किया जाना चाहिए। –

+0

अद्भुत! :) – fduff

+0

@fduff के लिए धन्यवाद यह वास्तव में एक आश्चर्य है कि एक चर के लिए कमांड परिणाम का असाइनमेंट 'FOR' का उपयोग करके पूरा किया जाता है। –

2

यहां एक नमूना है।

बेशक

, यदि आप फ़ाइल नहीं करना चाहते, तो बस इस बाद में कार्य करें:

@echo off 
    set com=echo HI 
    ::Start Of Code You Need 
    echo|%com%>>"%temp%\tmp.txt" 
    for /f "tokens=* delims=" %%x in (%temp%\tmp.txt) do (
    set output=%%x 
    ) 
    del /q %temp%\tmp.txt 
    ::End Of Code You Need 
    echo This Is The Output: 
    echo %output% 
    pause>NUL 

यह com और से इनपुट लेता है:

del x.txt 
7
(dir /b "20??????" | find /c "2")>>x.txt 
set /p variable=<x.txt 

सब है कि:

+4

तो, क्या होगा यदि पहले से ही x.txt नाम की एक फ़ाइल है? (उपयोगकर्ता, या अन्य प्रोग्राम द्वारा बनाया गया?) – Mai

+1

@ माई: आप एक अनूठा नाम चुनते हैं? बस एक बनाओ। – jgauffin

-2
@echo off 

REM The command fltmc volumes provides some information about drives 
REM I need to extract the drive letter associated to a particular volume name. 
REM Here's how: 

fltmc volumes | find /i "\Device\HarddiskVolume3" > delme.txt 
for /f "tokens=1 delims= " %%i in (delme.txt) DO echo %%i 
Del /f delme.txt 
0

यह मेरे कोड है आउटपुट output

संबंधित मुद्दे

 संबंधित मुद्दे