2009-09-15 6 views

Antwort

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

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

Nur eine Anmerkung für andere, die dies verwenden können: Wenn dies in einer Batch-Datei getan wird, '% i' muss im' for' Befehl beide Male durch '%% i' ersetzt werden. –

+0

wunderbar! :) Danke dafür – fduff

+0

@fduff Es ist in der Tat ein Wunder, dass die Zuweisung des Befehlsergebnisses zu einer Variablen mit 'FOR' erfolgt. –

2

Hier ist ein Beispiel:

@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 ... 
7
(dir /b "20??????" | find /c "2")>>x.txt 
set /p variable=<x.txt 

Das ist alles.

Natürlich, wenn Sie die Datei nicht wollen, tun dies nur danach:

del x.txt 
+4

Also, was ist, wenn es bereits eine Datei namens x.txt gibt? (Erstellt von Benutzer oder andere Programme?) – Mai

+1

@Mai: Sie wählen einen eindeutigen Namen? Mach einfach eins. – 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

Dieses ist mein Code:

@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 

Es ist der Eingang von com und Ausgänge von output

Verwandte Themen