У меня есть выходные данные команды
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
, которые мне нужны:
1) Фильтр для включения только шрифтов TrueType
2) Сократить выводвключить только имя шрифта (все до "(TrueType)")
Возможно ли это сделать, и если да, то как?
Я уже пробовал использовать
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" |
findstr /I /C:"(TrueType)"
и получил вывод
Arial (TrueType) REG_SZ arial.ttf
Arial Black (TrueType) REG_SZ ariblk.ttf
Arial Bold (TrueType) REG_SZ arialbd.ttf
Arial Bold Italic (TrueType) REG_SZ arialbi.ttf
Arial Italic (TrueType) REG_SZ ariali.ttf
ect.
, но оттуда я не мог понять, как опустить имена файлов и текст "REG_SZ". Я попытался установить их все переменные с помощью this post
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`reg query
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" |
findstr /I /C:"(TrueType)"`) DO (
SET var!count!=%%F
SET /a count=!count!+1
)
ECHO %var1%
ECHO %var2%
ECHO %var3%
ENDLOCAL
Но, опять же, это не сработало бы, потому что на каждом компьютере было разное количество шрифтов, поэтому не было заданного количествапеременных для назначения. Кроме того, файлы для каждого шрифта имеют различное количество символов в имени файла, поэтому использование
echo %var1:~,-X%
не будет работать, равно как и обратное
echo %var1:~,X%
Так что, в конечном счете, я 'm обратно на круги своя с
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" |
findstr /I /C:"(TrueType)"
Есть ли какой-нибудь способ добиться нужного мне результата?