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

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

Автор: Elroir
Дата сообщения: 17.11.2006 23:08
Nagual
А что именно не работает?
Выложи здесь результат команды "tracert SERVERNAME", естественно заменив SERVERNAME на имя нужного сервера.

Цитата:
как выделить известный ip, допустим по маку 00-14-6a-43-3e-44 и запихать этот ip в настройки прокси сервера локальной машины

Я знаю про "arp -a", но она выдаст IP и MAC из кэша, а в кэше эти значения появятся толко после соединения с этой машиной (не могу дать 100% - но помнится мне именно так). Ну ладно - если так подходит, то:

Код:
for /F "usebackq tokens=1" %%I IN (`"arp -a | find "00-14-6a-43-3e-44""`) DO call :setproxy %%I
Автор: Nagual
Дата сообщения: 18.11.2006 00:08
Трассировка маршрута к SERVERNAME [х.х.х.х]
с максимальным числом прыжков 30:

1 <5 мс <4 мс <2 мс х.х.х.х

Трассировка завершена.

Не работает натсройка прокси сервера ((
То есть при выполнении сценария на рабочей станции происходит только трассировка, эффекта ноль
Автор: Elroir
Дата сообщения: 18.11.2006 01:16
Nagual
Ну понятно почему не работает. Я писал батник для английской винды, а у тебя она на русском.
Так - разобьем проблему на две части:
1. Работает ли установка прокси?
То есть прописан ли в Internet Explorer прокси сервер 192.168.0.1:8080, после исполнения этого кода?

Код:
@echo off
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d 00000001 /f > nul
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /d 192.168.0.1:8080 /f > nul
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyOverride" /d "<local>" /f > nul
reg add "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d 00000001 /f > nul
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d 00000001 /f > nul
Автор: Nagual
Дата сообщения: 18.11.2006 01:47
Elroir
первая часть кода наконец то заработала, а во второй пишет:
"SERVERNAME" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
SERVERNAME подставлял верный еесно
Автор: Elroir
Дата сообщения: 18.11.2006 02:22
Nagual

Цитата:
первая часть кода наконец то заработала

Уже хорошо!
Странно, что не работает вторая часть - я проверял
Попробуй так:

Код:
@echo off
chcp 1251 > nul
for /F "usebackq tokens=5 delims=[] " %%I IN (`"tracert SERVERNAME | find "Трассировка маршрута""`) DO (echo %%I)
Автор: Nagual
Дата сообщения: 18.11.2006 04:15
Elroir

Разобрался с ошибками, первая ошибка была название файла tracert.cmd, это приводило к непредсказуемым результатам (тестить не советую), вторая все таки код на русской винде будет работать только в кодировке дос

Итак, окончательный вариант:


Код: @echo off
for /F "usebackq tokens=5 delims=[] " %%I IN (`"tracert SERVERNAME | find "Трассировка""`) DO call :setproxy %%I
goto :EOF

:setproxy
echo %1

set ad=reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v

%ad% "ProxyEnable" /t REG_DWORD /d 00000001 /f >nul
%ad% "ProxyServer" /d %1:8080 /f >nul
%ad% "ProxyOverride" /d "<local>" /f >nul
reg add "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d 00000001 /f >nul
Автор: Romero_Ekb
Дата сообщения: 18.11.2006 09:13
Elroir
Формат dd.mm.yyyy. Нужен dd-mm-yyyy
Автор: Elroir
Дата сообщения: 18.11.2006 12:46
Romero_Ekb

Код:
@echo off
ren %1 "%~n1_%date:~0,2%-%date:~3,2%-%date:~6,4%%~x1"
Автор: Romero_Ekb
Дата сообщения: 18.11.2006 15:31
Elroir
Спасибо, работает
Автор: Nagual
Дата сообщения: 18.11.2006 19:36
Elroir
я в курсе для чего нужна команда chcp1251, но именно с ней у меня код не работает, поэтому выложил рабочий вариант, а именно, без команды chcp1251 и обязательно в кодировке DOS, еще раз спс за помощь...
Автор: s1ayerspg
Дата сообщения: 19.11.2006 23:32
Bat- файл не работает с файлами и директориями, в имени которых есть кириллица.
Помогите, пожалуйста.
Автор: Kirillhome
Дата сообщения: 20.11.2006 00:42
s1ayerspg
Как не работает?
Чем помочь?
Пример bat-файла - в студию....
Скорее всего - необходимо использовать chcp 1251 и кавычки, обрамляющие название (").
Автор: Charm1
Дата сообщения: 20.11.2006 06:39
Elroir
@echo off
setlocal enabledelayedexpansion
FOR %%a IN (C:\1\new\*.xls) DO (
set tmp=%%~ta
set tmp=!tmp:~0,13!
if "!tmp!" NEQ "%DATE%" (del "C:\1\new\%%a")
)

Не работает, пишет "Синтаксическая ошибка в имени файла, имени папки или метки тома"
Может проблема в том что имя файла 17 символов?

Добавлено:
Kirillhome
Скорее всего - необходимо использовать chcp 1251 и кавычки, обрамляющие название (").

Это как? Пример привести можешь?
Автор: cluster
Дата сообщения: 20.11.2006 09:09
Ребят, помогите с задачкой:
Как создать\настроить соединение по локальной сети? После установки винды оно, конечно, появляется по умолчанию как "соединение по локальной сети". Можно ли его переименовать и настроить?
Пока переименовал вручную. По настройкам пробовал так. Скрипт не ругается, но и не работает, т.е. настроики не применяются.

Код: set address name = "local-net" source = static addr = 172.16.3.2 mask = 255.255.0.0
set address name = "local-net" gateway = 172.16.0.20 gwmetric = 1
set dns name = "local-net" source = static addr = 172.16.0.30
Автор: topic
Дата сообщения: 20.11.2006 10:14
Charm1

У меня вообще без кириллицы, а ошибка та же

c:\1\new\1.xls
c:\1\new\2.xls
c:\1\new\3.xls

Если
@echo off
setlocal enabledelayedexpansion
echo 1__%Date%
FOR %%a IN (C:\1\new\*.xls) DO (
set tmp=%%~ta
set tmp=!tmp:~0,13!
if "!tmp!" NEQ "%DATE%" (del "C:\1\new\%%a")
)
echo %tmp%

То сообщения
1__Пн 20.11.2006
Синтаксическая ошибка в имени файла, имени папки или метке тома.
Синтаксическая ошибка в имени файла, имени папки или метке тома.
Синтаксическая ошибка в имени файла, имени папки или метке тома.
18.11.06 09:0
Автор: ssnvit
Дата сообщения: 20.11.2006 13:57
Входные данные: текстовый файл temp.txt содержит N - количество строк.
Требуется: подсчитать количество строк и в зависимости от этого количества разбить файл temp.txt на m частей типа temp1.txt, temp2.txt и т.д., причем каждая часть должна содержать L строк, за исключением последнего файла разумеется. Пример: файл temp.txt содержит 287 строк. Разбить файл на составные части по 45 строк. В итоге получится 7 текстовых файлов, 6 равной длины по строкам, а 7 - укороченный.
Автор: uZver
Дата сообщения: 20.11.2006 15:13
ssnvit

Цитата:
подсчитать количество строк и в зависимости от этого количества разбить

а какая зависимость?
Автор: ssnvit
Дата сообщения: 20.11.2006 15:24
Примерное содержание текстового файла:
mc: 4564564646vfg
mc: 76567fhg
mc: 54656bgdfg
и т.д.
То есть грубо говоря разбить текстовый файл на части с примерным содержанием строк по 20-40 без всяких зависимостей - первая часть строки с 1 по 20, вторая часть с 21 по 40 и т.п.
Автор: s1ayerspg
Дата сообщения: 20.11.2006 15:44
Kirillhome
ну вот простейший пример:
COPY somefile.txt "C:\Documents and Settings\All Users\Главное меню\"

После запуска проги выводится сообщение об ошибке "Системе не удается найти указанный путь" (вместо Главное меню в окне батника (точнее, после команды COPY)написана какая-то белеберда).
Как это исправить?
Если можно, приведи пример кода.
Автор: uZver
Дата сообщения: 20.11.2006 15:55
ssnvit

Код: setlocal enabledelayedexpansion
set q=0
set N=20
for /F "delims= " %%i in (test.txt) do (
set /a q+=1
if !q! GTR !N! set /a N+=20
@echo %%i >> test!N!.txt
)
Автор: Elroir
Дата сообщения: 20.11.2006 16:18
topic
Charm1
Выложите здесь результат исполнения следующего кода

Код:
@echo off
echo Date format is "%date%"
for %%a in (c:\1\new\*.xls) do echo "c:\1\new\%%a" - "%%~ta"
Автор: Desenix
Дата сообщения: 20.11.2006 16:34
Кто знает, возможно ли стандартными средствами из (консоли)/(bat файла) создать VPN PPTP соединение ?
Автор: ssnvit
Дата сообщения: 20.11.2006 17:00
uZver

вроде бы все великолепно, НО в частях файла получается вывод только mc: ,а дальнейшейго значения строки нет. Может что-то надо поменять в параметре delims?
вот что на экране
mc:
mc:
mc:
и т.д.

Добавлено:
delims=$ и все заработало. Огромный поклон uZver!!!
Автор: topic
Дата сообщения: 20.11.2006 17:32
Elroir

Date format is "Пн 20.11.2006"
"c:\1\new\c:\1\new\1.xls" - "19.11.06 09:08 "
"c:\1\new\c:\1\new\2.xls" - "20.11.06 09:08 "
"c:\1\new\c:\1\new\3.xls" - "18.11.06 09:08 "
Автор: Elroir
Дата сообщения: 20.11.2006 17:59
topic

Цитата:
Синтаксическая ошибка в имени файла, имени папки или метке тома.

Не любит команда del работать с путем в кавычках, когда она (команда) в for-е.

Цитата:
Date format is "Пн 20.11.2006" "c:\1\new\c:\1\new\1.xls" - "19.11.06 09:08 "

Как я и подозревал - проблема в формате даты. Правильный код (я надеюсь):

Код:
@echo off
setlocal enabledelayedexpansion
FOR %%a IN (C:\1\new\*.xls) DO (
set tmp=%%~ta
set tmp=!tmp:~0,8!
if "!tmp!" NEQ "%DATE:~3,6%%date:~-2%" (
pushd %%~pa
del "%%a"
popd
)
)
Автор: topic
Дата сообщения: 20.11.2006 18:26
Elroir

Удаляет замечательно, теперь попытаюсь адаптировать под свою задачу

http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=20
Автор: Grigormoskal
Дата сообщения: 21.11.2006 02:00
Насчет полезных ссылок еще не добавили одну книжку назаваеться ''Командная строка Windows'' Автор Уильям Станек.
В ней почти 400 страниц, да когда я ее увидел тоже не думал что столько можнпо рассказать о командной стоке.
Там подробно рассказываеться о сценариях, командах и возможности bat файлов от самого простого cls или copy вплоть до: (написания сценариев по файловым систем впоть до RAID, мониторинг событий, управление учетными записями на локальном компе и на серваке, управление Activ Directory).

От себя есше добавлю что если читать с начала и внимательно то книгу понять не сильно сложно.

Весит книжка 16MB если у кого есть желание положить ее для всех на постояноое место проживания то скажите.
Автор: ssnvit
Дата сообщения: 21.11.2006 08:06
Есть вопрос - как сделать, чтобы исходный текстовый файл вида

вапвапа77-7иявими7ви7-м
иилтви4545ьитмисииялвяч
ипииви554545ичпипипрпп
иптрптртртьртртртч666иттт

конвертировался в такой вид

вапвапа77-7иявими7ви7-м

иилтви4545ьитмисииялвяч

ипииви554545ичпипипрпп

и т.д., то есть между строк обязательно вставить пустую строку.
Автор: Charm1
Дата сообщения: 21.11.2006 08:13
Elroir
Вот что у меня
Date format is "21.11.2006"
"c:\1\new\c:\1\new\DislSur0611154343.xls" - "15.11.2006 04:34"
"c:\1\new\c:\1\new\DislTob0611169712.xls" - "16.11.2006 09:07"
"c:\1\new\c:\1\new\DislTob06112041439.xls" - "20.11.2006 04:14"
"c:\1\new\c:\1\new\OtcTob0611169757.xls" - "16.11.2006 09:08"
"c:\1\new\c:\1\new\OtcTob0611174590.xls" - "17.11.2006 04:59"
"c:\1\new\c:\1\new\OtcTob06112041510.xls" - "20.11.2006 04:15"
"c:\1\new\c:\1\new\OtprSur0611169557.xls" - "16.11.2006 09:05"
"c:\1\new\c:\1\new\PribSur0611169551.xls" - "16.11.2006 09:05"
"c:\1\new\c:\1\new\RemSur0611169545.xls" - "16.11.2006 09:05"
"c:\1\new\c:\1\new\RemTob06112041510.xls" - "20.11.2006 04:15"
"c:\1\new\c:\1\new\SyrDpr061120.xls" - "20.11.2006 04:39"
"c:\1\new\c:\1\new\SyrDpr061121.xls" - "21.11.2006 06:43"
код
@echo off
setlocal enabledelayedexpansion
FOR %%a IN (C:\1\new\*.xls) DO (
set tmp=%%~ta
set tmp=!tmp:~0,8!
if "!tmp!" NEQ "%DATE:~3,6%%date:~-2%" (
pushd %%~pa
del "%%a"
popd
)
)

Удаляет все файлы а надо что б оставил файл от текущей даты
Автор: tolyn77
Дата сообщения: 21.11.2006 08:32
igor_andreev
спасибо

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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