Как сохранить результат выражения команды в переменной с помощью скриптов bat? - PullRequest
22 голосов
/ 15 сентября 2009

У меня есть команда для подсчета всех каталогов, которые следуют шаблону 20??????:

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

Например, если у меня есть следующие каталоги, команда вернет 6:

20090901
20090902
20090903
20090904
20090905
20090906

Как сохранить результат этой команды (6 в вышеупомянутом примере) в переменной?

Ответы [ 5 ]

45 голосов
/ 15 сентября 2009
set cmd="dir /b "20??????" | find /c "2" "

FOR /F "tokens=*" %%i IN (' %cmd% ') DO SET X=%%i
8 голосов
/ 25 февраля 2014
(dir /b "20??????" | find /c "2")>>x.txt  
set /p variable=<x.txt

Вот и все.

Конечно, если вы не хотите файл, просто сделайте это потом:

del x.txt

РЕДАКТИРОВАТЬ - Как сделать имя файла уникальным:

@ Mai: используйте для создания уникального имени файла:

set timestamp=%date:.=%%time::=%
set timestamp=%timestamp:,=%
set timestamp=%timestamp:/=%
set timestamp=%timestamp:-=%
set filename=file%timestamp%.tmp

Добавьте дополнительные замены, если в формате даты вашей системной культуры есть другие символы внутри

2 голосов
/ 15 сентября 2009

Вот пример:

@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 ...
0 голосов
/ 10 апреля 2017

Это мой код:

@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

0 голосов
/ 01 июля 2016
@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...