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

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

Автор: ProstoNaprosto
Дата сообщения: 13.11.2008 17:30
Доброго времени суток. Существует проблема, на работе комп используется как прокси-сервер(2 локальных подключения через сетевушки) и для это требуется чтобы Интернет-подлкючение было приоритетным, но стоит также программа call-центр на другом сервере, и она собственно тоже требует приоритетного подключения, но уже по Сетевому-подключению. Пока что я меняю приоритетность подключений ручками(Сетевые подключения->Дополнительно->Дополнительные параметры), достаточно запустить прогу call-центра под приоритетным подключением и потом снова поставить инет-подключение приоритетным и все здорово. Так вот можно ли это сделать батником?

И еще вопрос, использую батник для остановки-запуска одной программы-сервера.
start /min serv -off
ping ip
start /min serv -on
Пинг в общем-то нужен для создания паузы чтоб сервер успел остановиться, но проблема в том что он не минимизируется также как "start". Можно ли как-то заменить пинг или также сворачивать и его? Так как батник запускается каждые 30 минут.
Автор: stalker1980
Дата сообщения: 14.11.2008 10:14
Доброго времени суток!! Народ помогите найти решение, есть сервак DHCP, поднят не давно и как водится в сети остались машины на которых стоят IP в ручную. Есть скрипт который политикой прописан при logon пользователя скидывает настройки на автомат, но на некоторых машинах он не сработал, пока не знаю по какой причине. Вообщем вопрос такого характера, есть ли в командной строке команда которой можно скинуть настройки до автомата, к машинам есть доступ через телнет. Есть Active Directory и работает GPO.

Заранее благодарен!

Автор: Elroir
Дата сообщения: 14.11.2008 16:54
Kilyan
Попробуем по-другому. Заменяем первую часть батника:

Код:
@echo off
del tmp?.txt 2>nul
rem =======================================================
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
1>temp2.txt sed -n "/\"Search Path/p" temp1.txt
1>temp1.txt sed "s/\\\\/\\/g" temp2.txt
1>temp2.txt sed "s/;/\n/g" temp1.txt
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
set "tempVar1=%tempVar1:~15%"
echo %tempVar1%>temp1.txt
more /E +1 temp2.txt >> temp1.txt
set "lines=0"
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem ======================================================
Автор: AHAKOHDA
Дата сообщения: 14.11.2008 21:14
Elroir
привет. а как через Паузу 2 минуты потом зациклить батник типа опять сначала?

Код: @echo off
tasklist | find /i "Camfrog Video Chat.exe">nul
if not errorlevel 1 taskkill /F /IM "Camfrog Video Chat.exe"
start "" "C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
Автор: Elroir
Дата сообщения: 14.11.2008 22:07
AHAKOHDA

Код:
@echo off
:loop
tasklist | find /i "Camfrog Video Chat.exe">nul
if not errorlevel 1 taskkill /F /IM "Camfrog Video Chat.exe"
start "" "C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
ping -n 121 -w 1000 127.0.0.1>nul
goto loop
Автор: AHAKOHDA
Дата сообщения: 15.11.2008 09:52
Elroir
благодарю!
столько новых для меня команд! ping адрес -t это я еще знаю.
но loop и >nul это уже для меня новое
спасибо
Автор: Elroir
Дата сообщения: 15.11.2008 14:05
stalker1980
Есть такие команды:

Код:
netsh interface ip set address name="Local Area Connection" source=dhcp
netsh interface ip set dns name="Local Area Connection" source=dhcp
Автор: AnDy_ninJa
Дата сообщения: 15.11.2008 14:37
Была когда-то такая утилита FastCon (смесь игровой консоли (Quake, HL) и cmd).
Никто не знает что с проэктом происходит сейчас (сайт неработет) и есть ли у кого (хотя бы старая версия)
Автор: Smitis
Дата сообщения: 15.11.2008 20:55
AnDy_ninJa

Цитата:
есть ли у кого (хотя бы старая версия)

На полном серьёзе: www.yandex.ru
Автор: freelancer89
Дата сообщения: 16.11.2008 11:58
Нарад, хелп ми плиз, нужно написать скрипт на cmd? чтобы по заданным MAC-адресам задать IP-адреса из таблицы в файле, как таблицу делать и как извлекать из нее значения разобрался, как менять IP-разобрался, а вот как это сделать по MAC-адрессам???
Автор: statistik1981
Дата сообщения: 16.11.2008 14:26
Привет всем!

Как можно реализовать удаление всех файлов и подкаталогов не зная заранее название этих подкаталогов.
Это нужно для очистки сетевого диска раз в неделю.
Предполагается, что батник будет запускаться по шедулеру.

Файлы удалить легко, но подкаталоги, чтобы очищались, это я не знаю как.
Хочется поставить это на автомат.

Команда RmDir здесь не прокатывает.
Автор: Kilyan
Дата сообщения: 16.11.2008 16:16
Elroir

Цитата:
Попробуем по-другому. Заменяем первую часть батника:

Код:
@echo off
del tmp?.txt 2>nul
rem =======================================================
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
1>temp2.txt sed -n "/\"Search Path/p" temp1.txt
1>temp1.txt sed "s/\\\\/\\/g" temp2.txt
1>temp2.txt sed "s/;/\n/g" temp1.txt
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
set "tempVar1=%tempVar1:~15%"
echo %tempVar1%>temp1.txt
more /E +1 temp2.txt >> temp1.txt
set "lines=0"
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem ======================================================



Используется утилита sed.exe - http://gnuwin32.sourceforge.net/packages/sed.htm


Спасибо! Получилось! Урра! Спасибо! Выручил!!!!
Автор: 01MDM
Дата сообщения: 16.11.2008 22:32
statistik1981

Т.е надо очистить сетевой диск?

Код:
@echo off
pushd U:
rd /s /q "." 2>nul
popd
Автор: Sergey_Demchuk
Дата сообщения: 17.11.2008 00:21
Виделли кто нибудь в нете пожатую версию описания коммандной строки, взятую с этого сайта? http://www.windowsfaq.ru/content/category/3/19/37/
Автор: statistik1981
Дата сообщения: 17.11.2008 16:23
01MDM

СУПЕР!!! Работает.
Спасибо большое!!!
Автор: Bradyaga
Дата сообщения: 17.11.2008 19:10
А реально, отправить в буферобмена или в файл, адрес (link) активного акна в опере?
Автор: vitrzn
Дата сообщения: 18.11.2008 22:21
Помогите с оптимизацией батника !

есть список файлов (список меняется)

0813rlaw096.rar
0924rexp180.rar
1025rlaw076.rar
0804rlaw363.rar
0805rlaw177.rar
0808rlaw053.rar
0721rlaw095.rar
0732rlaw284.rar
0514rlaw011.rar
0514rlaw049.rar

сделал батник для сортировки этих файлов

md rlaw096
md rexp180
md rlaw076
md rlaw363
md rlaw177
md rlaw053
md rlaw095
md rlaw284
md rlaw011
md rlaw049

move *rlaw096.rar .\rlaw096\
move *rexp180.rar .\rexp180\
move *rlaw076.rar .\rlaw076\
move *rlaw363.rar .\rlaw363\
move *rlaw177.rar .\rlaw177\
move *rlaw053.rar .\rlaw053\
move *rlaw095.rar .\rlaw095\
move *rlaw284.rar .\rlaw284\
move *rlaw011.rar .\rlaw011\
move *rlaw049.rar .\rlaw049\

так вот вопрос!
А можно как-то сделать так, чтобы шла сортировка-перемещение файлов и создание соот папок только для тех файлов которые есть в списке?
Т.е. минуя команду MD , а заменив её на ту которая НЕ будет создавать пустых папок .


Автор: 01MDM
Дата сообщения: 18.11.2008 22:39
vitrzn
Наверное так:

Код:
@echo off
for %%i in (*.rar) do call:1 %%i
goto:eof

:1
set folder=%~n1
set folder=%folder:~4%
md %folder%
move %1 %folder%
Автор: pasha
Дата сообщения: 19.11.2008 19:38
Люди добрые! Сами мы не местные... (с)

Вводная: есть куча компов (сотни 1.5-2), на каждом компе 10-20-50 учетных записей.
Задача: надо очистить TEMP'ы (все - профильные, системные и т.п).
Вопрос: как это сделать быстро и красиво? Удаленно - вообще супер!

ЗЫ Все компы с ОС WinXP.

***
Ага! Нашел: http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=320#5
Еще варианты?
Автор: Elroir
Дата сообщения: 19.11.2008 20:52
pasha

Цитата:
Ага! Нашел

Только прочитай внимательно все посты на той странице.
А запускать батник на удаленной машине можно с помощью утилиты psexec
Автор: pasha
Дата сообщения: 19.11.2008 21:33
Elroir
Сенкс!
Вот этот вариант жизнеспособен? У меня задача чуть попроще - батник будет запускаться с флешки или винта из под админа, система однозначно на С:\. Почему спрашиваю - тут все понятно, я сам в состояние его поправить. А с вариантами 01MDM'а прийдется просить помощи... :) Там некоторые места мне не посилам...
Автор: 1981u
Дата сообщения: 19.11.2008 22:26
Помогите написать батник пожалуста.
Нужно следующее:
имеется программа (вернее, сценарий, cmd), скажем, 1.cmd, и нужен батник, чтобы при запуске он спрашивал имя файла, и потом запускал "1.cmd введенное_имя_файла". Помогите плиз, слабо этот язык понимаю...
Автор: Elroir
Дата сообщения: 20.11.2008 04:17
pasha

Цитата:
Вот этот вариант жизнеспособен?

Не совсем. Точнее, он удаляет только директории того пользователя, под которым запускается (ну и Windows\Temp в придачу)
Попробуй такой вариант:

Код:
@echo off
setlocal
set "das=%ALLUSERSPROFILE:~0,-10%"
for /f "tokens=*" %%a in ('dir /ad /b "%das%"\') do (
pushd "%das%\%%a\Local Settings\Temp" 2>nul && echo rd /s /q "%das%\%%a\Local Settings\Temp" 2>nul
pushd "%das%\%%a\Local Settings\Temporary Internet Files" 2>nul && echo rd /s /q "%das%\%%a\Local Settings\Temporary Internet Files" 2>nul
popd
popd
)
pushd "%SYSTEMROOT%\temp" 2>nul && echo rd /s /q "%systemroot%\temp" 2>nul
popd
Автор: StHunter84
Дата сообщения: 20.11.2008 09:22
здравствуйте. Подскажите пожалуйста как сделать защиту от дурака, чтобы бат файл работал только при наступлении времени от и до?

я делаю так:

:time
if %time:~0,5% == 03:00 goto copy
sleep 10
goto time
:copy

срабатывает только в 3:00

нужно чтобы срабатывало от 3:00 и до 6:00

догадываюсь что нужно сделать проверку времени циклом типо FOR сравнивая его с текущщим временем, как реализовать?
Автор: Simple Crypt
Дата сообщения: 20.11.2008 10:10

Цитата:
Помогите написать батник пожалуста.
Нужно следующее:
имеется программа (вернее, сценарий, cmd), скажем, 1.cmd, и нужен батник, чтобы при запуске он спрашивал имя файла, и потом запускал "1.cmd введенное_имя_файла". Помогите плиз, слабо этот язык понимаю...


startup.cmd

Код:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set str="local.txt"
set /p str=name file:
echo %str%
call 1.cmd %str%
Автор: 1981u
Дата сообщения: 20.11.2008 14:17
Спасибо огромное!!!
Автор: DrZoltsberg
Дата сообщения: 20.11.2008 17:06
ilicho42


Цитата:
http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=1440

Доброго времени суток!
Решил облегчить себе жизнь, но как то получилось не очень...
В сети есть несколько проксиков и нужно перевести пользователей qip с одного проксика
на другой. Хранит qip конфиг в текстовом файле и нужно всего лишь заменить там несколько строк.
... нужно изменить строку Port=5190 на Port=443


Небольшой парсер с прогресс каунтером тебе в помощь :) надеюсь что не поздно.


Код:

@echo off
setlocal enabledelayedexpansion

:: Задать путь к inputfile для парсинга. Результат в outputfile.

set inputfile="input.txt"
set outputfile="output.txt"
set tempfile="temp.txt"

:: В ctrlenter символ ctrl-enter счётчика обработанных линий. Набирается в Edit.

set ctrlenter=
set /a linecount=0
if exist %outputfile% del %outputfile% >NUL
>%tempfile% find /N /V "bla_bla_bla" %inputfile%
for /f "skip=2 tokens=1,2 delims==" %%a in ('type %tempfile% 2^>NUL') do (call :parser "%%a" "%%b")
if exist %tempfile% del %tempfile% >NUL
goto :eof

:parser
set /a linecount+=1
<NUL set /p progress=%ctrlenter%
for /l %%a in (0,1,18) do <NUL set /p progress=%progress%%ctrlenter%
<NUL set /p progress=%progress%Parsing line %linecount%
if "%~2"=="" (set parsevalue=%~2) else (set parsevalue==%~2)

:: Заменяемые значения
::
:: if "%~2"=="xxx1" set parsevalue==yyy1
:: if "%~2"=="xxx2" set parsevalue==yyy2
:: ...
::
:: Внимание ! в файле inputfile значение вида AAA= т.е. пустое равенство должно
:: заканчиваться хотя бы одним пробелом после знака равенства. Также не перевариваются
:: и вызывают крах скрипта или неверный результат в outputfile спецсимволы < > & | ^ % " '

if "%~2"=="5190" set parsevalue==443

set string=%~1
:parsenextchar
if "%string:~0,1%"=="]" goto parseline
set string=%string:~1%
goto parsenextchar
:parseline
set string=%string:~1%
if "%string%"=="" echo.>>%outputfile%&goto :eof
>>%outputfile% echo %string%%parsevalue%
goto :eof

Автор: statistik1981
Дата сообщения: 20.11.2008 18:28
Привет всем!

Как с помощью батника сетевой принтер сделать по умолчанию?

У меня просто скрипт отрабатывается при загрузке и выставляет не тот принтер.
Сам скрипт я трогать не хочу, иначе на меня потом все шишки полетят.

Команда:
RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "prtmng02", где prtmng02 - имя принтера

неработает, говорит что имя принтера неможет найти.
Как я понял, это прокатывает только на локальных принтерах
Автор: DrZoltsberg
Дата сообщения: 20.11.2008 20:51
По всей видимости что-то вроде такого


Код:
rundll32 printui.dll,PrintUIEntry /y /c\\machine1 /n\\machine2\prtmng02

или

rundll32 printui.dll,PrintUIEntry /y /ga /c\\machine1 /n\\machine2\prtmng02 /j"LanMan Print Services"

вобщем без экспериментов не обойтись набираем rundll32 printui.dll,PrintUIEntry /? и зачитываемся
Автор: statistik1981
Дата сообщения: 21.11.2008 14:38
DrZoltsberg

Я не смог заставить это работать.
На сервере все прекрасно изменяется, а на локальном компе нехотит.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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