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

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

Ответить
Настройки темы
CMD/BAT - команда find

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


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

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


Доброго времени суток!
Подскажите пожалуйста, как правильно сделать. Суть такая - найти количество строк в текстовом файле, которые содержать знак "!". Пишу

find /c "!" c:\test\file.txt

Он возвращает такую строку
---------- C:\TEST\FILES.TXT: 0

Вот как сделать, чтобы он возвращал только результат, а не ---------- C:\TEST\FILES.TXT ? И, если возможно, как сделать, чтобы результат записывался в переменную, чтобы потом дальше можно было с ней работать, например if a=0 и тд. ?
Заранее спасибо!

Отправлено: 16:19, 29-08-2014

 

Ветеран


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

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


Код: Выделить весь код
@echo off
setlocal enableextensions disabledelayedexpansion

set sSourceFile=0001.txt

if exist "%sSourceFile%" (
	for /f "usebackq delims=" %%i in (
		`type "%sSourceFile%" ^| find.exe /i /c "!" 2^>nul`
	) do set /a iCount = %%~i
) else (
	echo Not found source file [%sSourceFile%].
	exit /b 1
)

echo Found: %iCount%.

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:11, 29-08-2014 | #2



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

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


Ветеран


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

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


Код: Выделить весь код
@echo off

find /c "|"<"C:\test\file.txt"

for /f %%a in ('find /c "|"^<"C:\test\file.txt"') do set a=%%a
echo %a%
if %a%==0 (echo No) else (echo Yes)

pause>nul
exit /b

Последний раз редактировалось Georgio, 29-08-2014 в 17:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:11, 29-08-2014 | #3


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


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

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


Спасибо огромное!!

Отправлено: 17:46, 29-08-2014 | #4


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


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

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


Цитата Georgio:
for /f %%a in ('find /c "|"^<"C:\test\file.txt"') do set a=%%a »
а подскажите пожалуйста что значит ^< в этой строчке ? идут сразу после find /c "|" ? и почему переменная обозначается %%a, а не %a% ?
Заранее спасибо.

Отправлено: 14:37, 01-09-2014 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
22 find andrew 250881 Лечение систем от вредоносных программ 6 05-03-2013 22:44
Утилиты - [addon] Find Target dimich22 Наборы обновлений для Windows XP/2003/Windows 7 29 28-01-2013 08:43
Find Favorites 3.11 OSZone Software Новости программного обеспечения 0 02-10-2012 17:30
CMD/BAT - поиск с помощью Find cyber_ua Скриптовые языки администрирования Windows 4 20-03-2012 16:40
...cannot find the specified path... - перенаправление? semiono Автоматическая установка Windows 2000/XP/2003 1 09-04-2010 01:43




 
Переход