Показать полную графическую версию : [решено] Как записать в переменную результат выполнения команды?
Ага. Я брал поновее версию. Но ни моя, ни Ваша без устройства работать не хотят :).
В предыдущем варианте я что-то перебдел. Попробуйте так:
@echo off
for /f "usebackq tokens=2" %%i in (
`2^>^&1 "fastboot.exe" oem get_build_version ^| find.exe /i "^(bootloader^)"`
) do set sBootLoader=%%i
if defined sBootLoader echo [%sBootLoader%]
или так:
@echo off
for /f "usebackq tokens=2" %%i in (
`2^>^&1 "fastboot.exe" oem get_build_version ^| find.exe /i "(bootloader)"`
) do set sBootLoader=%%i
if defined sBootLoader echo [%sBootLoader%]
rectator
24-11-2015, 00:35
Естественно без устройства не работает =)
Но зато ваш последний вариант отлично работает!
Спасибо за помощь.
Есть команда wmic.exe Process where "Name='Far.exe'" get WorkingSetSize
Вывод WorkingSetSize
6393856
Нужно засунуть вторую строчку (число) в переменную (через файл не хочу)
Попробовал предложанные в теме форы, не получилось
megaloman
14-02-2018, 15:53
@Echo Off
cls
FOR /F "usebackq skip=1 delims=" %%s IN (`wmic.exe Process where "Name='Far.exe'" get WorkingSetSize`) DO Set /A S=%%s &GoTo :Cont
:Cont
Echo %S%
Pause
DJ Mogarych
14-02-2018, 16:10
Если я правильно понял задачу (Powershell).
$p = Get-CimInstance win32_process -filter "name='far.exe'" | Select -ExpandProperty WorkingSetSize
New-Item env:farworkingsetsize -Value $p
Есть такая буква!
Мне недавно тоже самое понадобилось и я сафсемвахуе был, когда понял что нету такой возм-сти в cmd-bat. Но оказалось что всё-таки можно и причем давно... но таким сопособом, что фиг додумаесся :yes: Способ нашелся тут (http://forum.oszone.net/post-1632312-3.html)
пользуемся ;) Для случая Aquilo
@echo off
@setlocal ENABLEDELAYEDEXPANSION
for /f "delims= tokens=* usebackq" %%i in (`wmic.exe Process where "Name='TOTALCMD.EXE'" get WorkingSetSize`) do @if not X%%i==X set FILES=!FILES! %%i
echo %FILES%
pause
exit
... и дальше через for "tokens=" берем что нужно. Мне понадобились имена папок и вот так
for /f "delims= tokens=* usebackq" %%i in (`"dir /b g:\"`) do @if not X%%i==X set FILES=!FILES! %%i
имена загнал в одну переменную и через for подставлял.
Всем привет!
Не стал плодить темы, моя задача немного схожа, мне нужно осуществить поиск мест где находится файл, создал скрипт:
@echo off
setlocal EnableDelayedExpansion
For /F "Delims=" %%I In ('where /r d:\ "filename"') Do Set filename=%%~I
echo "%computername%"; !filename! > where.csv
Но, проблема в том что на выходе получаю только путь до последнего найденного файла, а их несколько, подскажите - как осуществить вывод всех найденных?
Спасибо!
Runn3r,
сразу и записывать в файл, зачем там переменная:
@echo off
>where.csv (For /F "Delims=" %%I In ('where /r d:\ "filename"') Do @<nul set /p="%%~I;")
pause
>"where.csv" (
for /f "delims=" %%i in ('where.exe /r d:\ "filename"') do echo %ComputerName%;%%~i
)
… @<nul set /p="%%~I;") »
Они ж все в одну строчку будут?!
Они ж все в одну строчку будут?! »
полагаю раз запись в csv, то так и надо.
Спасибо всем за помощь.
Не получается сделать в одну строчку, мне нужно будет использовать where для нескольких, разных файлов и чтобы в начале прописывалось имя компьютера: %computername%;filename1;filename2 и тд
@echo off
>where.csv echo %computername% && (For /F "Delims=" %%I In ('where /r d:\ "filename1"') Do @<nul set /p="%%~I;") && (For /F "Delims=" %%I In ('where /r d:\ "filename2"') Do @<nul set /p="%%~I;")
pause
Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, без вывода аргументов с которыми он стартован? Пробовал через wmic с выводом commandline - путь указывает, но еще и указывает кучу не нужных аргументов с которыми стартован процесс (((
В итоге хотел бы получить такую информацию: %computername%;filename1;filename2;all_java.exe_process_path
Заранее огромное спасибо!
Runn3r, так Вам как надо-то? В моём понимании или в понимании коллеги alpap? Такой:
ComputerName;c:\Windows\notepad.exe
ComputerName;c:\Windows\System32\notepad.exe
ComputerName;c:\Windows\SysWOW64\notepad.exe
или такой:
ComputerName;c:\Windows\notepad.exe;c:\Windows\System32\notepad.exe;c:\Windows\SysWOW64\notepad.exe
?
мне нужно будет использовать where для нескольких, разных файлов »
Ну, так и используйте несколько:
where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"
https://i.imgur.com/MfVeia9.png
нужно чтобы информация выводилась в строку
Runn3r, значит, используйте вариант коллеги alpap. Как указать несколько масок зараз — сообщением выше.
Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, »
Что есть в Вашем понимании «путь от куда запущены»?
Что есть в Вашем понимании «путь от куда запущены»? »
На ПК установлены разные версии Java, одновременно выполняются несколько процессов java, нужен вывод откуда они запущены, нужен только путь без аргументов с которыми они стартованы
Надо полагать, Вы подразумеваете под этим путь к исполняемому файлу.
@echo off
setlocal enableextensions enabledelayedexpansion
>"where.csv" (
<nul set /p sVar=%ComputerName%;
for /f "usebackq delims=" %%i in (`where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"`) do <nul set /p sVar=%%~i;
for /f "usebackq delims=" %%i in (`wmic.exe Process where "Name = 'java.exe'" get ExecutablePath /value`) do for /f "tokens=2 delims==" %%j in ("%%i") do <nul set /p sVar=%%j;
)
endlocal
exit /b 0
Правда, как Вы собираетесь в этом месиве, по недоразумению именуемом Вами csv, различать что где есть — не знаю. Впрочем, дело Ваше.
Здравствуйте.
Нужно передать в скрипт переменную залогиненного пользователя.
Узнать кто залогинился можно командой WMIC /NODE: "localhost" COMPUTERSYSTEM GET USERNAME
На выходе получается
UserName
DOMAIN\user
Нужно первую строчку убрать и имя домена с обратным слешем тоже.
Попробовал из того что выложено на форуме - не помогло.
FOR /F "usebackq skip=1 delims=" %%I IN (`WMIC /NODE: "localhost" COMPUTERSYSTEM GET USERNAME`) DO Set /P S=%%I
Echo S
vdvas, возможно, Ваша проблема (для локальной машины) решается проще:
echo %userdomain%
echo %username%
Я на удаленной машине выполняю скрипт через psexec с ключом s, таким образом %username% здесь будет СИСТЕМА.
Поэтому такие системные переменные не годятся.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.