Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 6

Автор: batniki
Дата сообщения: 16.04.2009 23:53
Помогите, нужно подсчитать количество строк в файле и сравнить полученное число с переменной blabla, если переменная blabla больше или равна полученного числа количества строк сделать goto.
Автор: Maza_Faka
Дата сообщения: 17.04.2009 07:29
batniki

Цитата:
нужно подсчитать количество строк в файле и сравнить полученное число с переменной blabla

Пример:

Код:
@Echo Off

Set Number=5

For /F "Tokens=3" %%A In ('Find /V /C "" test.txt') Do Set sCount=%%A

If %sCount% GEQ %Number% Echo :GoTo _MyProc
Автор: dessMY
Дата сообщения: 17.04.2009 19:38
Подскажите пожалуйста как вставить в тестовой файл служебные символа x03g
Автор: 01MDM
Дата сообщения: 17.04.2009 22:38
dessMY
А в чем проблема?

echo x03g 1>1.txt
Автор: dessMY
Дата сообщения: 18.04.2009 12:03
Уважаемый 01MDM
Подскажи как вставить символа в начало файла, при этом удалить в нем первые 2 строки символов. Это нужно для оптимизации печати.
Автор: 01MDM
Дата сообщения: 18.04.2009 13:57
dessMY

Код:
@echo off

echo x03g 1>1.tmp
more +2 1.txt 1>>1.tmp
move 1.tmp 1.txt
Автор: KfarYm
Дата сообщения: 18.04.2009 14:27
NovaC

Цитата:
в cmd выводить мигающий текст

код:
@echo off
:st
cls
color 0e
echo.
echo SOS! SOS! SOS!
ping -n 3 localhost > nul
cls
echo.
echo.
ping -n 2 localhost > nul
goto st

Нижние эхи (по числу верхних) - только чтобы курсор не прыгал при активном окне CMD.
похоже, значение ping -n 2 минимальное...
Автор: metraton
Дата сообщения: 18.04.2009 14:47
Здравствуйте! Задача такова: необходимо организовать поиск файла по всем локальным дискам компьютера. С алгоритмом поиска я справлюсь, но вот вопрос: как узнать, сколько дисков в системе и какие у них буквы, чтобы я мог по ним искать файл? Заранее спасибо.
Автор: 01MDM
Дата сообщения: 18.04.2009 20:39
metraton

Самое простое, это перечислить все буквы:

Код:
@echo off
for %%i in (q w e r t y u i o p s d f g h j k l z x c v n m) do dir /b /s /a "%%i:\file.ext" 2>nul
Автор: meopemuk
Дата сообщения: 18.04.2009 22:43
Приветствую всех уважаемых форумчан этих замечательных веток, которые с некоторых пор очень мне помогают. Одно плохо: веток много, и я вконец запутался в поиске нужного мне... Помогите, пожалуйста, решить задачу:
Есть батник, в котором нужно изменить путь к исполняемому файлу в соответствии с веткой реестра, вернее, с одним ее ключом. Ключ является полноценным путем к папке, не включающим лишних символов, но у меня не получается это использовать - знаний слишком мало... (Делаю инсталлятор программы-дополнения, которая должна после установки изменить пусковой батник основной программы таким образом, чтобы она оставалась рабочей вне зависимости выбора пути установки).
Если кратко:
Нужно заменить строки в батнике, скажем:
....
start /Wait С:\Myprogs\Softina\Boo.exe
....
взяв путь в ключе:
[HKEY_LOCAL_MACHINE\SOFTWARE\Krupnosoft\Sword]
"InstallPath"="С:\Mybugs\Poltina\Boo.exe\\"
Заранее прошу прощения за возможные ошибки и неточности.
Автор: vu1tur
Дата сообщения: 19.04.2009 00:49
meopemuk

Код:
for /F "tokens=3" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Krupnosoft\Sword /v InstallPath ^| findstr InstallPath') do set installpath=%%a
start /Wait %installpath%
Автор: Maza_Faka
Дата сообщения: 19.04.2009 08:42
KfarYm

Цитата:
похоже, значение ping -n 2 минимальное

Да вроде бы задержка в 1 секунду, тоже не сильно грузит систему

Код:
@echo off
color 0e

:st
echo Help!
ping -n 1 localhost>nul
cls
ping -n 1 localhost>nul
goto :st
Автор: alexagf
Дата сообщения: 19.04.2009 10:39
В общем, как я уже говорил, следующий код работает:

Код: if %PROCESSOR_ARCHITECTURE% == AMD64 (
START /WAIT setup1.exe
) else (
START /WAIT setup2.exe
)
Автор: Nagual
Дата сообщения: 19.04.2009 11:40
alexagf
2 код на языке vbs-script
Автор: alexagf
Дата сообщения: 19.04.2009 11:53
Nagual
Да Бог с ним, с vbs-script...
Меня больше волнует несрабатывание из архива.
Автор: vu1tur
Дата сообщения: 19.04.2009 12:16
alexagf
выполни из архива команду set >log.txt
и посмотри что там вообще в окружении, когда скрипт пускается из архива
Автор: smirnvlad
Дата сообщения: 19.04.2009 12:26
alexagf

Из архива не работает, потому что архиватор работает в 32 битном режиме и %PROCESSOR_ARCHITECTURE% становится x86, в т.ч. и для запускаемых процессов, а проверки на %PROCESSOR_ARCHITEW6432% == AMD64 нету

Попробуй такое


Код:
@echo off

set isAMD64=
IF _%PROCESSOR_ARCHITECTURE%==_AMD64 (
@echo 1
set isAMD64=true
)
IF _%PROCESSOR_ARCHITEW6432%==_AMD64 (
@echo 2
set isAMD64=true
)
if _%isAMD64%==_true (
@echo amd64
) else (
@echo x86
)
pause
Автор: alexagf
Дата сообщения: 19.04.2009 12:42
vu1tur
При прямом запуске:

Код: PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=EM64T Family 6 Model 26 Stepping 4, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=1a04
Автор: wolf0425
Дата сообщения: 19.04.2009 16:31
есть текстовый файл message.log
требуется рассортировать его строки на два файла - содержащие подстроку "string" (реально - оканчивающиеся на нее) и остальные.

вопрос: известен ли способ сделать это в один проход (одной командой) или ничего лучше двух последовательных вызовов find.exe не придумано?

сортировка построчным чтением через for in (message.log) непригодна - символы <> в логе заведомо заведомо есть.
Автор: Nagual
Дата сообщения: 19.04.2009 16:55
wolf0425
Код:
@echo off
chcp 1251>nul
findstr
/e string test.txt>new.txt
findstr /e /v string test.txt>new1.txt
хотя наверняка и sed можно прикрутить
Автор: mudag100500
Дата сообщения: 19.04.2009 16:58
Доброго времени суток! Прошу помощи в решении следующей задачи:
Нужно определить IP адрес машины, на которой запущен батник[локальный айпи, тот что в свойствах TCP/IP, на случай нескольких сетевых подключений желательно продумать вариант определить активное и/или по которому идёт обмен пакетами в общем случае или в случае пинга определённого узла], и, в зависимости от значения, вывести вообщение на экран или изменить адрес, шлюз, днс и тоже сообщить об этом echo'м
Реально ли реализовать bat-ником ? Если да, то как?
Автор: wolf0425
Дата сообщения: 19.04.2009 19:30
Nagual, не как решать задачу в два прохода - давно известно и неинтересно.
хочется - в один, с однократным чтением входного потока. типа
чегото /ключи 1>new1.txt 2>new2.txt
чем может помочь sed в этом - идей пока нет
Автор: An4eus
Дата сообщения: 19.04.2009 20:21
BAT-ник с "ключами" запускается?
Автор: ZeroCrash
Дата сообщения: 19.04.2009 21:29
01MDM

Дописал, но ничего не изменилось! Сама прога не запускается и всё!
У меня SP3. Если не сможешь устранить неполадку, то может сможешь решить проблему по-другому?
Вот сама прога, которую надо так запустить: http://webfile.ru/3425974
Ещё раз пример запуска: volumeid c: d1s4-a3c4
Очень расчитываю на твою помощь!
За ранее благодарен!
Автор: metraton
Дата сообщения: 19.04.2009 21:57
01MDM
Спасибо за совет! Сам думал так поступить, но решил спросить, а вдруг есть решение поизящнее.
Автор: 01MDM
Дата сообщения: 19.04.2009 23:04
ZeroCrash
У меня все отлично работает..
Проверь отсутствие концевых пробелов в строчках батника. Это в шапке самый первый пункт.

Код:
@echo off
setlocal enabledelayedexpansion

for %%i in (1,2,3,4) do (
for %%j in (a,s,d,c,e) do set y_%%i_!random!=%%j
for %%j in (1,2,3,4,5) do set x_%%i_!random!=%%j
)

for %%i in (1,2,3,4) do (
for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
)

volumeid c: %x-1%%y-1%%x-2%%y-2%-%x-3%%y-3%%x-4%%y-4%

:: Ниже перезагрузка, что бы изменения вступили в силу. Раскомментируй если надо сразу перезагрузиться.
:: shutdown /r /t 0
Автор: An4eus
Дата сообщения: 20.04.2009 01:09
01MDM
а можно пример?
передаём два параметра - вывести сложение этих чисел
Автор: 01MDM
Дата сообщения: 20.04.2009 07:15
An4eus

Код:
@echo off
set /a res=%1+%2
echo %1+%2=%res%
Автор: An4eus
Дата сообщения: 20.04.2009 10:22
01MDM
Цитата:
%1+%2
это обращение, как параметру в целом или как к числу?
Это я к тому, что если хочу передать строки
Автор: 01MDM
Дата сообщения: 20.04.2009 10:41
An4eus
В данном случае это операция сложения (set /a)
Передаем строку: q w e r t y "qwerty 123":

Код:
@echo off

echo %*
echo %1 %2 %3 %4 %5 %6 %7
echo %~7

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: как сохранить сетевые настройки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.