|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] присвоение результата findstr к переменной |
|
CMD/BAT - [решено] присвоение результата findstr к переменной
|
Старожил Сообщения: 151 |
Всем привет!
Недоработает код,подправьте что не так или предложите аналог @ECHO OFF FOR /F "tokens=*" %%a ('findstr.exe /r /x /c:"Возможность применения :.*" Check.txt') DO ( set a=%%a if not /i "%a%" == "Возможность применения : Да" goto move1 goto next1 ) :next1 FOR /F "tokens=*" %%b ('findstr.exe /r /x /c:"Состояние :.*" Check.txt') DO ( set b=%%b if not /i "%b%" == "Состояние : Отсутствует" goto move2 goto next1 ) :move1 echo move1 :move2 echo move2 :next ECHO Нажмите любую кнопку для выхода PAUSE>nul |
|
Отправлено: 13:51, 31-07-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать nfs911, чтобы «передоработать»
код, как минимум, потребен файл «Check.txt». Выложите его в архиве. |
Отправлено: 17:10, 31-07-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 151
|
Профиль | Отправить PM | Цитировать Iska, прикрепил
|
Отправлено: 18:10, 31-07-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 1. Пропущены ключевые слова «in» в «for /f …».
2. «%a%» и «%b%» раскрываются при входе в скобки «(…)». Нужно использовать отложенное раскрытие: «setlocal enableextensions enabledelayedexpansion» в начале пакетного файла, и «!a!»/«!b!» внутри скобок. 3. Здесь: :next1 for /f "tokens=*" %%i in ('type "Check.txt" ^| findstr.exe /r /x /c:"Состояние :.*"') DO ( if not /i "%%i" == "Состояние : Отсутствует" goto :move2 goto next1 ) Многое излишне, код явно перегружен. Мне вообще весьма непонятна логика. Опишите ТЗ словами. |
Отправлено: 18:54, 31-07-2013 | #4 |
Старожил Сообщения: 151
|
Профиль | Отправить PM | Цитировать Iska, благодарю
вот как должно быть(показательный вариант ))) @ECHO OFF for /f "tokens=*" %%a in ('type "Check.txt" ^| findstr.exe /r /x /c:"Возможность применения :.*"') DO ( set str1=%%a if not "%%a" == "Возможность применения : Да" goto move1 goto next1 ) :next1 for /f "tokens=*" %%b in ('type "Check.txt" ^| findstr.exe /r /x /c:"Состояние :.*"') DO ( set str2=%%b if not "%%b" == "Состояние : Отсутствует" goto move2 goto next ) :move1 echo move1 echo %str1% goto next pause :move2 echo move2 echo %str2% goto next pause :next ECHO Нажмите любую кнопку для выхода PAUSE>nul Что значит ^ перед | findstr.exe Цитата Iska:
2.спасибо,буду знать и наконец пойму некоторый код 3.да я ошибся,next ps:+мешало /i в if (видимо надо перед not,но в люом случае можно обойтись т.к. регистр всегда один) и спс за трюк с type я конечно изобретаю велосипед но 1.изучаю cmd 2.я знаю что делает мой код(чужой код не известен) |
||
Последний раз редактировалось nfs911, 31-07-2013 в 20:06. Отправлено: 20:00, 31-07-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата nfs911:
Цитата nfs911:
|
||
Отправлено: 12:50, 01-08-2013 | #6 |
Старожил Сообщения: 151
|
Профиль | Отправить PM | Цитировать DISM
1)рапаковывает все обновы в папке с папками итп (из MSU в CAB) 2)удаляем исходник(MSU) 2)потом проверяет их на применимость к монтированому wim образу и записывает результат в Check.txt 3)потом считывая результат - если не применим то в одну папку перемещаем (тамже где и само обновление т.е. для каждой папки будет своя папка),если уже установлен то в другую папку,а если всё ок то отставляем как есть и переходим к следующему файлу |
Отправлено: 21:43, 01-08-2013 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. | NiOl | Скриптовые языки администрирования Windows | 7 | 31-01-2019 19:58 | |
CMD/BAT - [решено] findstr помощь | firstarey | Скриптовые языки администрирования Windows | 26 | 12-10-2013 12:17 | |
CMD/BAT - Присвоение значения переменной | starav | Скриптовые языки администрирования Windows | 1 | 30-05-2013 09:23 | |
CMD/BAT - [решено] В переменной содержится имя переменной | opravdin | Скриптовые языки администрирования Windows | 3 | 28-01-2013 11:11 | |
CMD/BAT - [решено] Присвоение переменной папкам уровнями выше | dorosa | Скриптовые языки администрирования Windows | 4 | 13-10-2012 19:47 |
|