我有下面的命令来算,一个是遵循该模式20??????
的所有目录:如何使用bat脚本将命令表达式的结果存储在变量中?
'dir /b "20??????" | find /c "2"'
举例来说,如果我有以下目录中,该命令将返回6:
20090901
20090902
20090903
20090904
20090905
20090906
哪有我将这个命令的结果(前面的例子中是6)存储在一个变量中?
我有下面的命令来算,一个是遵循该模式20??????
的所有目录:如何使用bat脚本将命令表达式的结果存储在变量中?
'dir /b "20??????" | find /c "2"'
举例来说,如果我有以下目录中,该命令将返回6:
20090901
20090902
20090903
20090904
20090905
20090906
哪有我将这个命令的结果(前面的例子中是6)存储在一个变量中?
set cmd="dir /b "20??????" | find /c "2" "
FOR /F "tokens=*" %%i IN (' %cmd% ') DO SET X=%%i
这里有一个例子:
@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 ...
@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
这是我的代码:
@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
只是注意别人谁输出,可以使用这样的:如果这是一个批处理文件内部完成, 'for'命令中'%i''必须用'%% i'代替。 – 2012-04-16 17:14:02
太棒了! :)感谢那 – fduff 2012-08-21 16:08:53
@fduff令人惊讶的是,命令结果赋值给一个变量是通过使用'FOR'完成的。 – 2012-08-22 01:31:10