Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CMD - читаю из файла, если первый символ строки =*, то вывести на экран строку

Ответить
Настройки темы
CMD/BAT - CMD - читаю из файла, если первый символ строки =*, то вывести на экран строку

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Читаю из текстового файла строки
проверяю каждую строку, если одна из них начинается на символ *, то вывожу эту строку на экран и т.д.

вот кусок моих страданий, но он не работает:

For /F "usebackq tokens=* delims=" %%i In ("list.txt") Do (
set d=%i:~0,1%
if %d%== * @echo STROKA= %%i %d%
)



если просто ввести с клавы в переменную, то
set d=%i:~0,1%
if %d%== * @echo STROKA= %%i %d%

код срабатывает

Как бы это организовать правильно ?

Отправлено: 20:54, 06-02-2016

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата greg zakharov:
Какой-то странный у Вас sed, однако. »
Код: Выделить весь код
  > sed --version
GNU sed версия 4.2.1
Copyright (C) 2009 Free Software Foundation, Inc.
Код: Выделить весь код
  > type 1.txt
qqqqq
www*ww
*ttttt
6666
*mmmm
99999
  > sed -n "/^*/p" 1.txt
*ttttt
*mmmm

  > sed -n /^*/p 1.txt
www*ww
*ttttt
*mmmm

Отправлено: 10:56, 07-02-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Теперь понял о чем речь, - да, кавычки нужны, если в файле есть строки, содержащие символ * где-нибудь в середине строки. Отталкивался же от противного, так что вполне справедливое заечание с Вашей стороны.

Отправлено: 11:30, 07-02-2016 | #12


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


эх, сложно для меня все это.
с процентами и восклицательными знаками так и не разобрался
пробовал сегодня приклеивание к переменной одного символа сделать, опять не вышло.
суть такова(к примеру на Паскале):
begin
s:='';
for i:=1 to 10 do
begin
s:=s+'#';
writeLn(s);
end;
end.

должен получить на экран результат:
#
##
###
#####
######
и т.д. до 10
Как это оформить на CMD ?

Отправлено: 22:29, 07-02-2016 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата jester7:
Как это оформить на CMD ? »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVar=

for /l %%i in (1, 1, 10) do (
	set sVar=!sVar!#
	echo !sVar!
)

endlocal
exit /b 0

Отправлено: 00:01, 08-02-2016 | #14


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Еще можно так (если известна длина строки):
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set "n=##########"

for /l %%i in (1,1,10) do echo !n:~0,%%i!

Отправлено: 00:17, 08-02-2016 | #15


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Добрый День подскажите пожалуйста,
:Start
if %time:~0,2% LSS 10 goto two
set re=%date%(%time:~0,2%-%time:~3,2%).htm
"C:\Program Files (x86)\Compare Suite\comparesuite.exe" "C:\Users\Alex\Desktop\equipment register\equipment register1.xls" "C:\Users\Alex\Desktop\equipment register\equipment register.xls" -r:C:\Users\Alex\Desktop\test\%re% -AllowMultipleInstance
if not errorlevel 1 goto TO
:two
"C:\Program Files (x86)\Compare Suite\comparesuite.exe" "C:\Users\Alex\Desktop\equipment register\equipment register1.xls" "C:\Users\Alex\Desktop\equipment register\equipment register.xls" -r:C:\Users\Alex\Desktop\test\%date%(%time:~1,1%-%time:~3,2%).htm -AllowMultipleInstance
:TO
for /f "usebackq delims=" %%i in ("28.03.2022(12-06).htm") do (
set sVar=%%i
if "%sVar" equ " <td class="val">73</td>" goto break
)
goto end
:break
del /q "07.04.2022(11-56).htm"
:end
timeout /t 3600
goto Start



почему то при сравнении строки не отрабатывает goto break. Спасибо

Отправлено: 10:13, 11-04-2022 | #16


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


"%sVar" - ошибка в синтаксисе, надо "%sVar%" , но это тоже работать не будет из-за отложенного раскрытия переменной в цикле.
set sVar=%%i в вашем цикле не нужно вовсе. напишите сразу:
if "%%i"==" <td class="val">73</td>" goto :break
Кстати, equ в If применяется для сравнения численных значений.
Я ничего не проверял, возможно где-то еще не то.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 13:52, 11-04-2022 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CMD - читаю из файла, если первый символ строки =*, то вывести на экран строку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - Не печатает первый символ на русском OGG Microsoft Office (Word, Excel, Outlook и т.д.) 2 21-06-2013 07:56
CMD/BAT - [решено] вывести сообщение на экран если файл весит больше 1 гига mars Скриптовые языки администрирования Windows 2 14-12-2009 11:03
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами Oleg48 Скриптовые языки администрирования Windows 2 18-11-2009 11:08
CMD/BAT - [решено] вывод текстового файла на экран cmd idsp Скриптовые языки администрирования Windows 6 06-04-2009 07:18
Помогите пожалуйста не срабатывает команда из*cmd файла запускаемого из RanOnceEx.cmd vovchiku Автоматическая установка Windows 2000/XP/2003 6 25-09-2007 23:38




 
Переход