2009-09-15 96 views

回答

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

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

只是注意别人谁输出,可以使用这样的:如果这是一个批处理文件内部完成, 'for'命令中'%i''必须用'%% i'代替。 – 2012-04-16 17:14:02

+0

太棒了! :)感谢那 – fduff 2012-08-21 16:08:53

+0

@fduff令人惊讶的是,命令结果赋值给一个变量是通过使用'FOR'完成的。 – 2012-08-22 01:31:10

2

这里有一个例子:

@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 

这就是全部。

当然,如果你不想要的文件,只是这样做之后:

del x.txt 
+4

那么,如果已经有一个名为x.txt的文件呢? (由用户或其他程序创建?) – Mai 2016-01-27 15:07:08

+1

@Mai:你选择一个独特的名字?只要做一个。 – jgauffin 2017-03-23 10:24:16

-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

这是我的代码:

@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和输入从output

相关问题