Показать полную графическую версию : [решено] Получить подстроку
TeMochkiN
15-10-2012, 21:54
Получаю я значение из реестра, которое скажем выглядит так:
пквнвкы "рвнгва123" рпврп32
как можно выдрать то, что в кавычках? рвнгва123
TeMochkiN
15-10-2012, 21:56
надо ведь кавычки как то в качестве разделителей использовать, только я не знаю как правильно это написать
TeMochkiN
15-10-2012, 22:23
можно вообще где-нибудь почитать по-подробнее про for со всякими ключами типа /f "tokens=* delims="
можно вообще где-нибудь почитать по-подробнее про for со всякими ключами типа /f "tokens=* delims=" »
Windows XP:
hh.exe mk:@MSITStore:C:\WINDOWS\Help\ntcmds.chm::/for.htm
Windows 2003 и выше — сначала:
start "" "http://www.microsoft.com/en-us/download/details.aspx?id=2632"
после загрузки и помещения «CommandReference.chm», например, в «C:\WINDOWS\Help»:
hh.exe "ms-its:C:\WINDOWS\Help\CommandReference.chm::/html/e275726c-035f-4a74-8062-013c37f5ded1.htm"
Также:
For - Looping commands | SS64.com (http://ss64.com/nt/for.html) и все ссылки в низу страницы под заголовком «Related:».
Batch files - The FOR command: Windows NT 4/Windows 2000 Syntax (http://www.robvanderwoude.com/ntfor.php)
Batch Files - Variable Expansion in FOR Loops (http://www.robvanderwoude.com/variableexpansion.php)
NT's FOR /F command: tokens and delims (http://www.robvanderwoude.com/ntfortokens.php)
TSCMD010 FAQ: How can I change the environment variable values within a FOR loop? Assorted NT/2000/XP/.. CMD.EXE script tricks written by Timo Salmi (http://www.netikka.net/tsneti/info/tscmd010.htm)
TSCMD072 FAQ: Is it possible to use quotes as delims in for loops? Assorted NT/2000/XP/.. CMD.EXE script tricks written by Timo Salmi (http://www.netikka.net/tsneti/info/tscmd072.htm)
TSCMD095 FAQ: How to perform an operation on all the filenames listed in a file? Assorted NT/2000/XP/.. CMD.EXE script tricks written by Timo Salmi (http://www.netikka.net/tsneti/info/tscmd095.htm)
TeMochkiN
15-10-2012, 22:48
Iska, спасибо! буду читать! :)
Windows 2003 и выше — сначала:
Код:
start "" "http://www.microsoft.com/en-us/download/details.aspx?id=2632"
после загрузки и помещения «CommandReference.chm», например, в «C:\WINDOWS\Help»:
Код:
hh.exe "ms-its:C:\WINDOWS\Help\CommandReference.chm::/html/e275726c-035f-4a74-8062-013c37f5ded1 »
Win 7 x64 пишет :dont-know
Переход на веб-страницу отменен
Попробуйте сделать следующее:
Повторите ввод адреса
и так происходит даже просто при открытии файла и кликании на любом пункте в содержании
буду читать остальные ссылки
TeMochkiN, разблокируйте загруженный файл: Как разблокировать CHM-файлы в Windows 7 | Software | Blog. Just Blog (http://www.manhunter.ru/software/543_kak_razblokirovat_chm_fayli_v_windows_7.html).
как можно выдрать то, что в кавычках? »
@Echo Off
Set TXT=пквнвкы "рвнгва123" рпврп32
For %%i In (%TXT%) Do If Not %%i==%%~i Echo %%~i
Pause>Nul
TeMochkiN
16-10-2012, 11:37
разблокируйте загруженный файл »
спасибо! сразу не додумался до этого))
gora, работает! :) но у меня небольшая заминка есть, у меня двойные кавычки встречаются 4 раза в тексте: пквнвкы "рвнгва123" рпврп32 "траляля"
поэтому выводится рвнгва123 и траляля))) как вывести только рвнгва123? :)
просто вот что я пытаюсь сделать:
For /F "Tokens=*" %%I In ('REG QUERY "<ВеткаРеестра>" /ve') Do Set abc=%%I
::после этого abc = (по умолчанию) REG_SZ "<Путь>" "<Параметр>" и я пробую следующее:
For /F "Tokens=1" %%i In (%abc%) Do If Not %%i==%%~i Echo %%~i
видимо это неправильно, т.к. пишет ошибку Непредвиденное появление: REG_SZ.)))
мне надо получить только <Путь>
TeMochkiN, экспортируйте конкретную ветку реестра (а не "траляля") в формате .reg , которую Вам нужно обработать, и выложите ее здесь. Укажите в ней, что конкретно нужно получить из нее.
TeMochkiN
16-10-2012, 12:06
gora, ну у вас же просто может не быть этой ветки в реестре, если только вы не используюете 1с)))
Ветка:
HKCR\Applications\1cestart.exe\shell\open\command
Ключ:
(по умолчанию) REG_SZ "C:\Program Files (x86)\1cv82\common\1cestart.exe" /RunShortcut "%1"'
надо получить путь C:\Program Files (x86)\1cv82\common\1cestart.exe
ну у вас же просто может не быть этой ветки в реестре »
У меня ее и нет, поэтому я просилэкспортируйте конкретную ветку реестра (а не "траляля") в формате .reg »
Вот так:Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\7zFM.exe\shell\open\command]
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""
TeMochkiN
16-10-2012, 12:15
Простите, я невнимательно прочел)
так как можно только путь получить?
For /F "Tokens=1" %%i In (%abc%) »
For /F "Tokens=1" %%i In ("%abc%") ...
выполните в консоле команду help for
читать вдумчиво и неспешно, for достаточно мощьная команда, но не всегда очевидная, а когда заходит речь о кавычках, запятых, пробелах и слешах то очень легко сделать ошибку.
Если вы получили строку в переменную, тогда мучайте for отельно, reg вам уже не нужен.
Я бы сразу Tokens=3* поставил
Echo %%i
echo %%j
вам помогут в отладке.
@Echo Off
Set sKey=HKCR\Applications\1cestart.exe\shell\open\command
For /f "tokens=4-6" %%i In ('Reg Query "%sKey%" ^| FindStr /I /C:"REG_SZ"') Do For %%a In (%%i %%j %%k) Do Echo %%~a
Pause>Nul
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.