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

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

Автор: igor_andreev
Дата сообщения: 02.04.2008 18:02
drondo
Бета-тестером будешь У меня есть где-то такой батник, написал в ситуации, схожей с твоей. Я им сам так толком и не попользовался, роутер другой купил, везде IP и DNS стал одинаковый, и дома и на работе. До дома доберусь - выложу.

Добавлено:
там кстати несложно, можешь и сам батник написать, сохранить настройки:
netsh interface dump > data.txt
восстановить:
netsh -f data.txt
Автор: 01MDM
Дата сообщения: 02.04.2008 18:57
drondo
igor_andreev

Можно слегка "облагородить"

Код:
@echo off
setlocal
echo [1] Work
echo [2] Home
set /p location="Choose location by number: "
if not defined location goto:eof
if %location%==1 netsh exec Work.cfg
if %location%==2 netsh exec Home.cfg
Автор: igor_andreev
Дата сообщения: 02.04.2008 20:52
drondo
Посмотрел сейчас аж три варианта этого батника в разных ипостасях, какой из них стопудово рабочий - не помню. Кажется этот setwf.zip (~2 Kb). Лучше использовать вместе с choice.zip (~20 Kb), но эт не обязательно. Еще мне почему-то казалось, что я выбор принтера делал, но сейчас такого батника чего-то не вижу.

01MDM

Цитата:
Можно слегка "облагородить"

У мну этот setwf (set wi-fi) - оо-о-очень облагорожен Меню может работать с choice.exe из Win 2000 ResKit и из XP Support Tools и из Win2003 и просто с set /p. Я даже не помню, зачем так делал, тренировался наверно. В любом случае, батник можно рассматривать начинающим, как пособие по созданию динамического меню в cmd.

Цитата:
ЗЫ. Не проверял.

Я тоже


Автор: XXXXL
Дата сообщения: 02.04.2008 22:46
igor_andreev,помог с батником для выреза символов с строки


Код: sed-3.59.exe -e "s/[^A-Za-z0-9.]//g" test.txt >new.txt
Автор: gryu
Дата сообщения: 02.04.2008 22:47
drondo
igor_andreev
01MDM
Народ, а разве "Альтернативная конфигурация" в данном случае не работает?
В ХР это ж предусмотрено.
Автор: igor_andreev
Дата сообщения: 03.04.2008 00:06
gryu

Цитата:
В ХР это ж предусмотрено.

Не пользуюсь, она там без самостоятельного интеллекта, конфигурация эта
XXXXL

Цитата:
Возникла необходимость выреза всех пустых строк с test.txt

Наверно так как-то

Код:
sed -e "s/[^A-Za-z0-9]//g" -e "/^[ \t]*$/d" test.txt >new.txt
Автор: 01MDM
Дата сообщения: 03.04.2008 07:53
XXXXL

Цитата:
Возникла необходимость выреза всех пустых строк с test.txt


Еще так

Код:
sed -n "s/[^\^\$]/&/g w new.txt" test.txt
Автор: magazinus
Дата сообщения: 03.04.2008 13:54
Знатоки, помогите, такая задачка: есть постоянно пополняемая папка с кучей .dwg (например) файлов, нужно получить из них самый свежий по дате (тот, что пришел туда последним) и подставить его имя в параметр командной строки program.exe.
Автор: 01MDM
Дата сообщения: 03.04.2008 14:20
magazinus


Код:
@echo off
for /f "tokens=*" %%i in ('dir /b /od *.dwg') do set "file=%%i"
start "" "program.exe" "%file%"
Автор: magazinus
Дата сообщения: 03.04.2008 14:49
01MDM
Большое спасибо, работает.
Автор: Auren
Дата сообщения: 03.04.2008 17:40
Помогите, пожалуйста, с батником.

Задача такова: нужно два bat-файла, один из которых будет останавливать сетевое подключение с названием, скажем, "Internet", а второй — включать.
Автор: sabio
Дата сообщения: 03.04.2008 18:22
rasdial "имя_вашего_соединения" /disconnect

rasdial "имя_вашего_соединения" "Логин" "Пароль"
Автор: XXXXL
Дата сообщения: 03.04.2008 18:56
01MDM, igor_andreev, огромное вам спасибо за вашу отзывчивость!!!
Автор: Auren
Дата сообщения: 03.04.2008 19:26
sabio
Да, я забыл указать, что это LAN-соединения.
Автор: drondo
Дата сообщения: 03.04.2008 19:32
01MDM
igor_andreev
респект, работают оба варианта, но через setwf.zip мне больше понравилось
Автор: 01MDM
Дата сообщения: 03.04.2008 23:03
Auren

Утилита cnic.exe. Ссылку можно найти в шапке в "Задачах на бат-файлах часть 5" (Операц. Системы) или в гугле. Пользоваться очень просто


Код:
:: Для включения интерфейса c именем "Internet"
cnic "Internet" -c
:: Для отключения
cnic "Internet" -d
:: Для справки
cnic /?
Автор: Auren
Дата сообщения: 03.04.2008 23:28
01MDM
Как раз такую утилитку и искал... Думал, может как-то можно через netsh, но там поддерживаются только ras-соединения.
Спасибо.
Автор: hpoint
Дата сообщения: 04.04.2008 02:27
Возникла неожиданная проблема:
Необходимо во время загрузки устанавливать максимальное разрешение монитора. Проблема в том, что все утилиты командной строки, которые устанавливают разрешение, иногда сбиваются и разрешение остается старым. Из утилит, которые позволяют не только устанавливать разрешение монитора и выдавать список поддерживаемых разрешений, необходимо еще знать текущее разрешение. Такая крохотная утилита есть - это QRes http://home.no/aksoftware/.

Задача: Написать батник, который в цикле проверяет текущее и максимальное разрешение монитора и пытается его установить N раз, а затем выходит из цикла и завершается.

Вывод поддерживаемых режимов: QRes /L

Цитата:

QRes v1.1
Copyright (C) Anders Kjersem.

640x350, 8 bits @ 60 Hz.
640x350, 16 bits @ 60 Hz.
640x350, 32 bits @ 60 Hz.
640x400, 8 bits @ 60 Hz.
640x400, 16 bits @ 60 Hz.
640x400, 32 bits @ 60 Hz.
640x480, 8 bits @ 60 Hz.
640x480, 16 bits @ 60 Hz.
640x480, 32 bits @ 60 Hz.
800x600, 8 bits @ 60 Hz.
800x600, 16 bits @ 60 Hz.
800x600, 32 bits @ 60 Hz.
1024x768, 8 bits @ 60 Hz.
1024x768, 16 bits @ 60 Hz.
1024x768, 32 bits @ 60 Hz.



Текущий режим: QRes /S

Цитата:

QRes v1.1
Copyright (C) Anders Kjersem.

800x600, 16 bits @ 60 Hz.

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

Добавлено:
Т.е. батник должен отработать и установить (в случае с моим ноутом) режим: 1024x768, 32 bits @ 60 Hz. В других случаях (на других машинах) разрешение, глубина и частота могут быть другими.
Автор: Elroir
Дата сообщения: 04.04.2008 03:37
hpoint

Код:
@echo off
setlocal enabledelayedexpansion
set "num_of_trys=10"
set "max_res_x=0"
set "max_res_y=0"
set "max_bits=0"
set "max_ref=0"
for /f "tokens=1-3,5 delims=x,@ " %%a in ('qres /v /l') do (
if %%a geq !max_res_x! (
if %%b geq !max_res_y! (
set "max_res_x=%%a" & set "max_res_y=%%b"
if %%c geq !max_bits! (
set "max_bits=%%c"
if %%d gtr !max_ref! set "max_ref=%%d"))))

for /f "tokens=1,2,4 delims=,@ " %%a in ('qres /v /s') do set "cur_res=%%a %%b %%c"
for /l %%l in (1,1,%num_of_trys%) do (
if "!cur_res!" == "%max_res_x%x%max_res_y% %max_bits% %max_ref%" goto :EOF
qres /v /x:%max_res_x% /y:%max_res_y% /c:%max_bits% /r:%max_ref%
for /f "tokens=1,2,4 delims=,@ " %%a in ('qres /v /s') do set "cur_res=%%a %%b %%c"
)
Автор: hpoint
Дата сообщения: 04.04.2008 09:12
Это круто Elroir!
Ничего не понятно, а работает! Спасибо огромное! Теперь начал разбираться. Не все понятно. Точнее не понятно многое, но надеюсь пойму.
А пока, если можно, вопрос несколько общий:
В конструкции
Цитата:
for /f "tokens=1-3,5 delims=x,@ " %%a in ('qres /v /l') do (

вызов 'qres /v /l' отрабатывает 1 раз или постоянно запускается в цикле?
Автор: Elroir
Дата сообщения: 04.04.2008 13:38
hpoint

Цитата:
вызов 'qres /v /l' отрабатывает 1 раз или постоянно запускается в цикле?

'qres /v /l' вызывается один раз. for бежит по строчкам вывода этой команды.
Автор: Mint86
Дата сообщения: 04.04.2008 15:09
В батниках я новичек, можно сказать даже вообще не знаю.
Не знаю туда ли я обращаюсь, но в общем есть вопрос:
Можно ли сделать так чтобы файл Excel запускался только через батник, а в этом батнике указать что надо проверить установлена ли галочка в безопасности макроса пункт низкий (Сервис-Макросы-Безопасность). Монитором реестра определил что проверку можно осущтвить в реестре в ветке: HKCU\Software\Microsoft\Office\11.0\Excel\Security
Параметр Dword "Lavel"
Если этот параметр установлен в 1 (там от 1 до 4) то защита от макросов отключена.

Автор: 01MDM
Дата сообщения: 04.04.2008 17:25
Mint86
Напрямую прикрутить, имхо, или нельзя или получится плохо. Лучше в виде вызова через контекстное меню

Вот сам батник

Код:
@echo off
setlocal
set "exec=reg query HKCU\Software\Microsoft\Office\11.0\Excel\Security ^| findstr Level"
for /f "tokens=3" %%i in ('%exec%') do (
    if %%i equ 0x1 start "" "%ProgramFiles%\...\excel.exe" %1
)

Автор: hpoint
Дата сообщения: 04.04.2008 17:46
Спасибо за ответы, Elroir.
Я в восхищении! Разобрался.
Автор: XXXXL
Дата сообщения: 04.04.2008 19:58
Ребята, а можно как-то установить ограничение букв и цифр? чтобы в строке оставались, только первые 10 букв и цифр а остальное удалялось.
Автор: igor_andreev
Дата сообщения: 04.04.2008 20:24
XXXXL
Чего-же нельзя, у тебя sed теперь есть
Оставить первые десять символов, остальные обрезать:

Код:
sed -r -e "s/^((.){10})(.*)$/\1/" test.txt > new.txt
Автор: 01MDM
Дата сообщения: 04.04.2008 21:34
XXXXL, igor_andreev



Код:
sed -n "s/.//11g w new.txt" old.txt
Автор: XXXXL
Дата сообщения: 04.04.2008 22:10
igor_andreev, 01MDM, СПАСИБО!
Автор: KfarYm
Дата сообщения: 04.04.2008 22:55
На каждой странице указание "не забывайте удалять пробелы в конце каждой строки", в этой связи вопрос: как вообще обрабатываются пробелы, табуляции, переносы строк…
Интересно "для общего развития", но важно при группировке с помощью скобок.
Пытался "методом тыка" выяснить, но что-то неодназначно или недопонял…
Прошу Гуру`s подсказать куда копать (MS молчит, или не там искал).
Автор: Rush
Дата сообщения: 05.04.2008 06:19
igor_andreev

Цитата:
Да я и сам в регулярных выражениях не силен, более-менее простые вещи еще могу, со сложными начинаю спотыкаться.

Думаю, поможет http://www.shura.totalcmd.net/download/regexpru.zip

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

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


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