Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: KapralBel
Дата сообщения: 24.01.2006 09:00
Da_Neil
Думаю все зависит от конкретной задачи.
Если не секрет - приведи нужную задачу. Посмотрим как можно сделать эффективнее
Автор: Da_Neil
Дата сообщения: 24.01.2006 14:46
KapralBel
Релизерские скрипты (см. eac-enc.cmd и eac-post.cmd) дорабатываю.
Автор: KapralBel
Дата сообщения: 24.01.2006 15:02
Da_Neil
И что надо сделать?
Скрипты нормальные
Автор: Da_Neil
Дата сообщения: 24.01.2006 15:04
KapralBel
Надо пользовательские настройки вынести, чтобы не мучались при обновлении версии
Автор: KapralBel
Дата сообщения: 24.01.2006 15:15
Da_Neil
В смысле "Пользовательские настройки"?
Что именно?
Автор: Da_Neil
Дата сообщения: 24.01.2006 17:55
KapralBel
Пути к программам, параметры тэгов, схемы наименования файлов и папок (в перспективе), параметры кодировщиков и т.д.
Автор: KapralBel
Дата сообщения: 25.01.2006 09:15
Da_Neil
Вариант 1
Прописать в переменные среды системы нужные параметры и использовать в кмд-никах.

Вариант 2
Прописать соответсвующие SET-ы в логон-скрипт для каждого компа

Вариант 3
Первой строкой сделать вызов Call \\Server\Share\Setup.cmd - и там прописывать в зависимости от машины нужные переменные среды

Вариант 4
В самом скрипте п зависимости от компа и пользователя объявлять переменные среды

Далее обращаться не к явно прописаным настройкам, а к переменным среды
Автор: Isorkin
Дата сообщения: 25.01.2006 22:41
Есть ли под Windows консольная программа которая показывает какой процес сколько загружает ЦП, как taskmgr тока консольный. tasklist.exe не показывает загрузку.
Автор: Accessor
Дата сообщения: 26.01.2006 09:28
Isorkin
попробуй PSlist c http://www.sysinternals.com, я не уверен, но попробуй или же поищи самомтоятельно там же.
Автор: mr1
Дата сообщения: 28.01.2006 06:15
Помогите, плиз.
Есть куча архивов в одной папке и подпапках. Необходимо создать батник или скрипт(vbs, js, Perl), который бы выполнял, следующие действия:
1. Существующие архивы в папке и подпапках формата zip, arj конвертировал в формат rar. Если архив формата rar, то надо осуществить проверку степени сжатия и если нужно архивировать с максимальной степенью сжатия. При этом необходимо сохранять оригинальные время создания архивов, дату файлов и комментарии в архивах.
2. Правил в каждой папке файл descript.ion, меняя расширения файлов с zip или arj на rar.
При этом если строка в descript.ion имеет кодировку dos866, её нужно перевести в win1251.
Автор: KapralBel
Дата сообщения: 28.01.2006 10:07
mr1
По поводу пункта 1. используй утилиту rcvt от Рошаля
Автор: KIBER
Дата сообщения: 31.01.2006 01:14
Народ ! Помогите плииз решить одну задачку...
Есть программка, которая запускается из под командной строки и в качестве аргумента задается имя файла.
Например: program.exe file.txt (но расширение файлов могут быть разные doc, xml, txt,dbf и т.д.)
Т.е. программка обрабатывает файл (что именно она делает не важно). Скажем запустить ее из под командной строки для одно файла не проблема, но если в папке лежит около сотни файлов и в ручную запускать для каждого файла..сами понимаете
Можно ли как-то автоматизировать этот процесс, т.е. задать ей обработать всю папку подряд, открывать файл, обработать ..закрыть, потом открыть второй файл..и т.д ?
Автор: igor_andreev
Дата сообщения: 31.01.2006 03:18
KIBER
Почитай в хэлпе про команду SHIFT. Можно сколько угодно параметров батнику передать.

Цитата:


@ECHO OFF

CD /D %~dp1

IF NOT " %2"==" " GOTO :_LOOP
ECHO RECEIVED PARAMETER "%~nx1"
PAUSE
EXIT

:_LOOP
IF " %1" ==" " GOTO :_END
ECHO RECEIVED PARAMETER "%~nx1"
SHIFT
GOTO :_LOOP

:_END
PAUSE
EXIT



А можно без SHIFT, тогда читай там же про команду FOR
Автор: KIBER
Дата сообщения: 31.01.2006 09:39
igor_andreev
Честно говоря раньше не сталкивался с такими задачами, поэтому то что ты написал не совсем до меня дошло..точнее дошло, но как применить к моему случаю..надеялся будет пример хотябы.
Но всеравно спасибо, попробую почитать и разобраться, хотя время поджимает сильно.
Автор: KapralBel
Дата сообщения: 31.01.2006 10:03
KIBER
Если надо обработку запускать для всех файлов в папке, то то проще следующее
чем делать вызов вида parse.bat 1.txt 2.exe 3.doc 4.xls 5.xls...
см. код, вместо Эхо подставляй нужную последовательность действий


Код:
@Echo Off
FOR %%a in (*.*) Do Call :_Parse %%a
GoTo :EOF

:_Parse
Echo Обработка файла %1
GoTo :EOF
Автор: KIBER
Дата сообщения: 31.01.2006 10:12
KapralBel
Так в том то и дело, что никаких действий не нужно делать. Когда я пишу в командной строке: program.exe file.txt
то программка program.exe обрабатывает файл file.txt и создает в этой же папке такой же файл, но со своим расширением типа: file.txt.sdf
и все..т.е. мне нужно как-то в батнике написать чтобы он запускал программку program.exe и попеременно подставлял в качестве как бы аргумента файлы в папке по очереди, таким образом обработав все файлы в папке...

Добавлено:
KapralBel
и что значит в твоем коде :_Parse ?
я так полагаю там как раз должно быть написано название программки ?

Добавлено:
KapralBel

Спасибо большое, все заработало
Кстати, а как можно сделать чтобы батник лежал на диске в какой-то папке, а его можно было бы применять для любых папок на компе не кпируя батник в ту папку. Я только что попробовал прописать путь к программке: FOR %%a in (*.*) Do Call C:\papka1\program.exe %%a
и запускаю командную строку в другой папке, но мне говорит что путь задан не верно..или может я не учел синтаксис указания пути ?
Автор: KapralBel
Дата сообщения: 31.01.2006 10:38
KIBER
_Parse это метка в батничке, см. 5-ю строку
Автор: Nick 2003
Дата сообщения: 05.02.2006 05:13
Подскажите, пожалуйста, как с помощью батника поменять IP ? C помощю этого:

Цитата:
ipconfig /flushdns
ipconfig /release
ipconfig /renew
он 1 раз из 10 меняется. Есть определённое время, раньше которго его нельзя менять или что ? Потому что если отключить и включить сетевую карту, то IP всегда меняется. Можно ли тогда с помощью батника отключить/включить сетевую карту ? В общем, смысл в следующем - мне нужно с помощью батника поменять свой IP (анонимные серваки не подходят). Помогите, пожалуйста.
Автор: KapralBel
Дата сообщения: 06.02.2006 09:44
Nick 2003
Какой срок аренды IP - адресов у DHCP-сервера?
Автор: slech
Дата сообщения: 19.02.2006 01:47
Народ кто знает как посмотреть рабочий стол из консоли ?
типа грабилка экрана
Заранее спасибо
Автор: volodyalipkin
Дата сообщения: 19.02.2006 19:12
slech
В 4NT есть возможность считать позицию экрана в текстовом режиме. Или что позразумевается под словами
Цитата:
посмотреть рабочий стол из консоли
Что планируется делать с ним дальше?
Автор: slech
Дата сообщения: 19.02.2006 22:16
volodyalipkin
Типа консольный грабер.
В картинку скинуть его, но только не простой, а типа кк радмин может.
Граберы консольные обычно грабят из под конкретного юзера, а радмин из под системы может, т.е. показать что в данный момент на мониторе видно.
Автор: ShamaN
Дата сообщения: 20.02.2006 08:24
Подскажите, можно ли в bat файле переменной присвоить случайное значение в заданных пределах, как это делается в паскале
Код: rnd:=random(10)
Автор: KapralBel
Дата сообщения: 20.02.2006 08:51
ShamaN
Set rnd=%Random%
Автор: ShamaN
Дата сообщения: 20.02.2006 09:16
KapralBel, а пределы как-нибудь задаются?
Автор: KapralBel
Дата сообщения: 20.02.2006 09:59
ShamaN

Цитата:
%RANDOM% - раскрывается в случайное десятичное число между 0 и 32767.


Код:
Set rn=%Random%
Set /a rnd=%rn%/100
Автор: Sully691
Дата сообщения: 20.02.2006 20:15
Честно читал все сообщения (заранее собщаю).
А вопрос такой : можно ли создать батник для такой задачи: при запуске
одной и той же базовой проги (не в виде процесса), в фоновом режиме (в крайнем случае явно) сразу за ней загружается перечень других и при выгрузки базовой проги автоматом коректно выгружаются остальные.
Допускаю ,что-кому то эта задача как два пальца об асфальт, но сильно не пинайте.
Если можно на примере конкретного листинга.Я просто от этого очень далек!
Автор: KapralBel
Дата сообщения: 21.02.2006 10:11
Sully691
Какая у тебя ОС?

Для WinXP
Недостатки
1. TaskKill - не всегда корректно закрывает программы. Если не известен ключ командной строки, который завершает работу программы (или другой аналогичный способ) - то корректное завершение программы в автоматическом режиме - почти не выполнимое задание


Код:
@Echo Off
Rem запуск первой программы
Start dsc.exe
Rem Остальных программ
Rem Ждем минуту, для гарантированного запуска 1-й программы
Set t0=%Time%
Set t1=%t0:~3,2%
:Loop1
Set t2=%Time:~3,2%
If %t1% == %t2% GoTo :Loop1
Start Calc.exe
Start Calc.exe
Start Calc.exe

:Loop2
Set TaskWork=0
For /F "tokens=1 delims= " %%a in ('tasklist') Do Call :_Test %%a
If %TaskWork%==1 GoTo :Loop2
TaskKill /F /IM Calc.exe
GoTo :EOF

:_Test
Set task=%1
If /I "%task%"=="dsc.exe" Set TaskWork=1
GoTo :EOF
Автор: Sully691
Дата сообщения: 26.02.2006 11:50
Cмысл понятен,большое спасибо KapralBel !
До конца не смог проверить ,так как TaskKill не нашел не у себя ,не в инете,а приемлемой замены ,без постоянного висения в памяти (типа Tkill,WinKill), не обнаружил.
Если поможет , могу перечислить конкретно запускаемые проги- это все для диалапа.
И вопрос по ходу - как можно вставить в батник ссылку на инет-соединение с папки
"Сетевые подключения" ?


Автор: Hrist
Дата сообщения: 27.02.2006 07:56
ребят - помогите плиз...
у меня простая задача...
у меня создаеться архив кажную ночь (образ диска вернее говоря) акронисом.
и запускаеться смд - переименовывая его в текующу дату...
получаеться например три архива
23.02.2006.тиб
24.02.2006.тиб
25.02.2006.тиб


нужно в смд задать команду что бы удалялся файл названием на 3 меньше чем текущая дата - т.е. 26го числа должен удалиться 23.02.2006.тиб, а 27 соотв 24.02.2006.тиб и так далее...

текущую дату я могу передать - а как от нее отнять три дня?

Добавлено:
Sully691

Цитата:
И вопрос по ходу - как можно вставить в батник ссылку на инет-соединение с папки "Сетевые подключения" ?


вот глянь пример - это запуск обмена по диалапу:


Код: @echo off
netsh interface set interface name=Maxim connect=DISCONNECTED
netsh interface set interface name=Kirovsk connect=CONNECTED
"C:\Program Files\1Cv77.ADM\BIN\1cv7s.exe" config /D E:\Trade\ /N Adm /P 0313 /@E:\1Cv77\Kir\ImExBD\ExpOS.prm
copy E:\1Cv77\Kir\ImExBD\Ex\*.* \\10.10.1.1\1Cv77\ImExBD\Im\ /Y
copy E:\1Cv77\Kir\Onlserv\*.* \\10.10.1.1\Trade\SRV\ /Y
copy E:\1Cv77\Kir\ImExBD\Run\Run.bat \\10.10.1.1\1Cv77\ImExBD\ /Y
:Begin
If exist run.bat goto run
goto begin
:run
call "C:\Program Files\1Cv77.ADM\BIN\1cv7s.exe" config /D E:\Trade\ /N Adm /P 0313 /@E:\1Cv77\Kir\ImExBD\ImOS.prm
Del run.bat
Del E:\1Cv77\Kir\Onlserv\*.* /Q
netsh interface set interface name=Kirovsk connect=DISCONNECTED

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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