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

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

Автор: garniv
Дата сообщения: 06.07.2007 01:15
Elroir
Правильно понял Нужно именно IP выцепить.


Код: set gateway="ipconfig | find /i "212""
Автор: Elroir
Дата сообщения: 06.07.2007 01:26
garniv

Цитата:
пишет ошибку Непредвиденное появление: %%a

Ты запускаешь просто из командной строки?
Тогда надо вместо двух символов процента писать один:

Код:
for /f "tokens=2* delims=:. " %a in ('ipconfig ^| find /i "212"') do set "gateway=%b"
Автор: garniv
Дата сообщения: 06.07.2007 04:43
Elroir, вот грубый алгоритм:


Код: @echo off
ipconfig|find /i "212">nul & if errorlevel 1 (echo Not 212) else (goto Rone)
ipconfig|find /i "89">nul & if errorlevel 1 (echo Not 89) else (goto Rtwo)
:Rone
for /f "tokens=1* delims=:. " %%a in ('ipconfig ^| find /i "212"') do set "gateway=%%b"
goto routeadd
:Rtwo
for /f "tokens=1* delims=:. " %%a in ('ipconfig ^| find /i "89"') do set "gateway=%%b"
:routeadd
route add 87.250.251.8 %gateway%
route add 213.180.204.11 %gateway%
Автор: Maza Faka
Дата сообщения: 06.07.2007 06:50
garniv

Цитата:
ipconfig|find /i "212">nul & if errorlevel 1 (echo Not 212) else (goto Rone)

Неправильное построение команды, попробуй так:
ipconfig|find /i "212">nul && goto Rone || echo Not 212
Автор: cluster
Дата сообщения: 06.07.2007 12:48
подскажите способы изменения даты\времени на удалённой машине. права админа есть.
..и в добавок: Как удалить шару с удалённого сервера?
Автор: wolf0425
Дата сообщения: 06.07.2007 14:21
cluster 1. думай в сторону psexec cmd /c data & time или net time
(в смысле запустить там или установку даты или синхронизацию с сервером)
2. net share /?
хотя шары мне заметно удобнее править через GUI - операции обычно уникальные, а оснастка "управление компьютером" вполне умеет управлять не только текущим но и сетевым.
Автор: cluster
Дата сообщения: 06.07.2007 15:05
wolf0425

Цитата:
хотя шары мне заметно удобнее править через GUI - операции обычно уникальные, а оснастка "управление компьютером" вполне умеет управлять не только текущим но и сетевым

Это если шар немного. у меня задача просканировать Эктив Директори на предмет уволенных пользователей и подчистить их личные каталоги, шары и dfs-линки.
В общем, с этим справился при использовании psexec

По дате\времени щас попробую. Благодарю.

Добавлено:
wolf0425
Как надо запускать команду?
Делаю так: psexec \\w07042001 -i "cmd /c date"

Он мне вот что выдаёт:

Код: PsExec could not start cmd /c date on w07042001
╤шёЄхьх эх єфрхЄё эрщЄш єърчрээ√щ яєЄ№.
Автор: wolf0425
Дата сообщения: 06.07.2007 19:49
cluster chcp 1251 в начало батника добавь - авось хоть тогда увидишь что cmd не нашли.
то ли .exe не хватает то ли вообще полного пути к файлу, не помню уже что PsExec надо.
ну и у date вообще-то ключики нужны...
Автор: xitsa
Дата сообщения: 07.07.2007 11:12
Подскажите, пожалуйста, как сделать без использования дополнительных программ следующую вещь:
Задача:
есть программа m.exe
Нужен батник, который запустит эту программу в этом каталоге и всех вложенных, желательно без копирования.
Пример:
Пусть есть каталоги Root\Sub1 и Root\Sub2.
m.exe и батник (пусть будет mmm.bat) лежат в Root
После запуска батника должна выполниться следующая последовательность операций:
m.exe
cd Sub1
..\m.exe
cd ..
cd Sub2
..\m.exe

Заранее спасибо
Автор: igor_andreev
Дата сообщения: 07.07.2007 11:42
xitsa
Так как-нить

Код:
@echo off
for /r /d %%a in (*) do (
pushd %%a
echo run %~dp0m.exe in %%a
popd
)
Автор: xitsa
Дата сообщения: 07.07.2007 14:20
2 igor_andreev
Спасибо!
Буду теперь думать как это работает
Автор: Simoid
Дата сообщения: 08.07.2007 12:36
Доброе время суток. уважаемые жители форума.

Помогите пожалуйста с решением следующей проблеммы.

1) На компьютере есть директория. Допустим C:\Dir

2) В директории создано большое количество папок.
C:\Dir\[b]XXX]000
.......
C:\Dir\[b]XXX]999

Одним словом все папки имеют только числовое название. Но номера ...000-...999 идут не попорядку. То есть, ...001, ...005, ...007 и т.д.

3) Требуется сделать архивы папок. При создании архива установить на него случайный 5+ значный пароль и сохранить название архива и пароль к нему в текстовый файл. Название архива равно названию папки. Пароль к каждой папке разный. Папка может иметь подпапки....

4) Архивировать можно любым следующим архиватором с максимальным сжатием: Rar, UHA, 7Z.


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

Помогите пожалуйста.
Заранее благодарен
Автор: Maza Faka
Дата сообщения: 08.07.2007 14:13
Simoid
Попробуй так:

Код:
@echo off
Setlocal enabledelayedexpansion
for /d %%a in (c:\dir\*) do (
set pass=!random!
rar a -ep1 -m5 -p!pass! %%a.rar %%a
echo %%a.rar>> log.txt
echo pswd !pass!>> log.txt
echo.>> log.txt)
Автор: wolf0425
Дата сообщения: 09.07.2007 07:51

Цитата:
set pass=!random!
32k разных паролей - всё ж наверно маловато будет...

Автор: Nagual
Дата сообщения: 09.07.2007 07:58
wolf0425
ну если мало, то очевидно можно сделать так:
!random!!random!!random! ... и тд пока не посчитаешь нужным
Автор: cluster
Дата сообщения: 09.07.2007 14:02
Ребят, помогите справиться с задачкой.
Нужно преобразовать путь к каталогу и назначить ему переменную. Например:
Вводим C:\video\AppData
После преобразования получаем video--AppData Новой переменной нужно присвоить это значение.


Код: set _Dest=
set /p _Dest=Введите путь (ENTER - закрыть):
if "%_Dest%" == "" goto _end
Автор: wolf0425
Дата сообщения: 09.07.2007 14:30
cluster а если введут D:\video\AppData\1\ или \\server\share\video\my\apps - что присваивать переменной?

Автор: cluster
Дата сообщения: 09.07.2007 15:39
wolf0425

Цитата:
D:\video\AppData\1\

video--AppData--1
Со скриптом буду работать я. Поэтому подстроюсь.
Сетевых путей точно не будет! А буква диска для преобразования не важна. Переменая с путём сохраняется.
Скрипт необходим для создания шарингов.


Код: set _Dest=
set _Fold=
set /p _Dest=Введите путь (ENTER - закрыть):
rem ex. C:\video\AppData
if "%_Dest%" == "" goto _end

set /p _Fold=Введите имя каталога:
rem ex. Clips

<преобразование>

cd /d %_Dest%
mkdir "%_Fold%"
net share "%new_var%"="%_Dest%\Clips" /cache:Programs /grant:Все,full
Автор: NIKZZZZ
Дата сообщения: 09.07.2007 16:18
cluster

Цитата:
set _Dest=
set _Fold=
set /p _Dest=Введите путь (ENTER - закрыть):
rem ex. C:\video\AppData
if "%_Dest%" == "" goto _end

set /p _Fold=Введите имя каталога:
rem ex. Clips

set new_var=%p_Fold:~3%
set new_var=%new_var:\=--%

cd /d %_Dest%
mkdir "%_Fold%"
net share "%new_var%"="%_Dest%\Clips" /cache:Programs /grant:Все,full

Автор: uart78
Дата сообщения: 09.07.2007 18:06

Помогите пожалуйста. Нужно сделать батник , который будет получать внешний IP(например отсюда http://www.showmyip.com/xml/ или по ipconfig ) и писать его в файл c:\\ip.txt в формате:
новая_строка ip дата


Автор: cluster
Дата сообщения: 09.07.2007 18:13
NIKZZZZ
Благодарю. Немного подправил и всё заработало.
Автор: NIKZZZZ
Дата сообщения: 09.07.2007 19:02
uart78

Цитата:
Нужно сделать батник , который будет получать внешний IP


Код: for /f "tokens=1* delims=:. " %%i in ('ipconfig ^| find "IP"') do set "ip_address=%%j"
echo %ip_address%>c:\ip.txt
Автор: wolf0425
Дата сообщения: 09.07.2007 20:40
uart78

Цитата:
батник , который будет получать внешний IP

в случае модема c NAT - ipconfig помочь узнать внешний адрес не может, но спросить его снаружи - никаких проблем нет. Заодно можно проверить и доступность снаружи по этому IP.
а вот лог я себе чуть расширил, ну и тестилка другая...


Код: wget -s -O test.lst http://www.utorrent.com/testport.php?port=21 2>nul
if errorlevel 1 echo NOT CONNECTED %date% %time:~0,8% >>c:\\ip.txt && goto :_del
for /f "eol=# tokens=1,2,3,4,5,6,7,8* delims=. " %%a in ('type test.lst ^| find "span"') do echo %%e.%%f.%%g.%%h %date% %time:~0,8% >>c:\\ip.txt
:_del
del test.lst
Автор: igor_andreev
Дата сообщения: 09.07.2007 21:02
wolf0425
Вот чтоб такими вычислениями не заниматься

Цитата:
for /f "eol=# tokens=1,2,3,4,5,6,7,8* delims=. " %%a in ('type test.lst ^| find "span"') do echo %%e.%%f.%%g.%%h %date% %time:~0,8% >>c:\\ip.txt

я для себя нарыл отличный адрес для wget:
http://www.netikus.net/show_ip.html
обычный текст, ни тегов html, ничего, кроме ip-шника
Автор: uart78
Дата сообщения: 09.07.2007 23:35
NIKZZZZ wolf0425 igor_andreev
Спасибо, помогло!
Автор: cluster
Дата сообщения: 10.07.2007 14:53
Люди, снова обращаюсь к вам за помощью.
есть строка в батнике, генерирующем *.vbs файл

Цитата:
@echo set objOU = objDomain.Create("organizationalUnit", "OU=" & strOrgUnit) >> temp.vbs

красный символ не позволяет записать строку в файл. как можно побороть?
Автор: KapralBel
Дата сообщения: 10.07.2007 14:56
cluster

Код: @echo set objOU = objDomain.Create("organizationalUnit", "OU=" ^& strOrgUnit) >> temp.vbs
Автор: Nagual
Дата сообщения: 11.07.2007 00:55
задача такая, удалить 18 строк из исходного файла

@echo off
chcp 1251>nul
set input=input.txt
set output=output.txt
echo.>%output%
for /f "skip=18 delims=" %%a in ('"type "%input%""') do echo %%a>>%output%

этот код подходит для простых текстовых файлов
как добиться того, чтобы переводы строк оставались?
может есть более продвинутое решение этой задачи? например, для работы с файлами html и т.д.
если текст содержит символы перенаправления, то начинаются всевозможные глюки и т.д. ...
да и бинарники думается этот код не сможет обработать...
Автор: Maza Faka
Дата сообщения: 11.07.2007 07:18
Nagual
Смотри в сторону "SED", вот только с синтаксисом этой утилиты я не знаком
А встроенными средствами, можно с помощью "MORE", например: MORE +17 input.txt> output.txt, выведет в файл все строки, пропустив первые 17 строк.
Автор: Nagual
Дата сообщения: 11.07.2007 16:18
Maza Faka
да more вполне хватило, спс, кто бы мог подумать...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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