2009-09-15 22 views

Respuesta

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

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

Solo una nota para otros que pueden estar usando esto: si esto se hace dentro de un archivo por lotes, '% i' debe reemplazarse con' %% i' ambas veces en el comando 'for'. –

+0

¡maravilloso! :) gracias por eso – fduff

+0

@fduff Es realmente una maravilla que la asignación del resultado del comando a una variable se realice usando 'FOR'. –

2

He aquí una muestra:

@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 

eso es todo.

Por supuesto, si usted no desea que el archivo, simplemente hacer esto después:

del x.txt 
+4

Entonces, ¿qué pasa si ya hay un archivo llamado x.txt? (¿Creado por el usuario u otros programas?) – Mai

+1

@Mai: ¿Usted elige un nombre único? Solo inventa uno. – 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

Este es mi código:

@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 

Se necesita la entrada de com y salidas desde output

Cuestiones relacionadas