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

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

Автор: Elroir
Дата сообщения: 04.01.2009 03:40
Zloy_Gelud
Немного переделанное решение от zzxx1488-а:

Код:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i: (set "first=%%i" && goto next)
:next
echo First drive letter - %first%
Автор: ilyamaina
Дата сообщения: 04.01.2009 10:16

Цитата:
С помощью утилиты nircmd

Спасибо, попробуем.
Но с помощью программ (любой планировщик) вырубить звук не проблема. Но держать отдельную прогу ради одного действия бестолково. Я имел ввиду именно bat-файл.
Весь смысл в том, чтобы выключить звук при выходе из спящего режима, т.к. засыпаешь под фильм какой-нибудь, а потом в 6 утра под него же и просыпаешся, что не всегда нужно .
Автор: Zloy_Gelud
Дата сообщения: 05.01.2009 21:31
Elroir
Я наверно не совсем правильно задал вопрос..Мне нужно получить букву диска, которой еще нет в системе. Например, имеются локальные диски (С:, D:), дисковод (А:), приводы (Е:, F:), ну может есче что-то. Так вот, нужно получить букву, которая еще не зарезервирована в системе.
Автор: Elroir
Дата сообщения: 05.01.2009 21:51
Zloy_Gelud

Код:
@echo off
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if not exist %%i: (set "first=%%i" && goto next)
:next
echo First unused drive letter - %first%
Автор: Zloy_Gelud
Дата сообщения: 05.01.2009 22:17
Elroir
Результат вашего кода:

Цитата:
First unused drive letter - E

А как я уже писал постом выше, что в системе уже имеется привод под буквой Е: - значит ее (букву) использовать уже нельзя..

Добавлено:
И есче вопросик..можно ли установить переменную в одном бат-файле и использовать ее (значение) в другом батнике?
Автор: Elroir
Дата сообщения: 06.01.2009 00:33
Zloy_Gelud
Точно, вот про приводы я и забыл. Тогда так:

Код:
@echo off
setlocal enabledelayedexpansion
set "list="
for /f "tokens=*" %%a in ('fsutil fsinfo drives ^| more') do set "list=!list! %%a"
set "list=%list:~8%"
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
echo %list% | findstr /i "%%i">nul
if errorlevel 1 (set "first=%%i" && goto next)
)
:next
echo First unused drive letter - %first%
Автор: Kilyan
Дата сообщения: 06.01.2009 11:26
Требуется помощь:

Необходимо организовать изменение сетевых настроек на сетевой карте
с указанием:
IP,MASK,Шлюз,DNS
по времени.
т.е. циклическая работа батника со сверкой текущего времени - при обнаружении указанного времени с допустимым (несколько мин ~30 ) интервалом происходила смена настроек сетевушки!
Помогите разобраться!

Одна сеть [more]@netsh interface ip set address name="Подключение по локальной сети" static 192.168.0.20 255.255.255.0 192.168.1.1 1
@netsh interface ip set dns name="Подключение по локальной сети" static 192.168.1.1
@pause [/more]
Вторая сеть [more]@netsh interface ip set address name="Подключение по локальной сети" static 10.0.1.60 255.255.255.0 10.0.1.110 1
@netsh interface ip set dns name="Подключение по локальной сети" static 10.0.1.110
@pause [/more]
Автор: Zloy_Gelud
Дата сообщения: 06.01.2009 17:48
Elroir -- теперь то, что надо! Огромное спасибо!
Автор: VergilDevil
Дата сообщения: 06.01.2009 21:17

Уважаемые Гуру, как сделать кубик, такой, как на рисунке, а? Ну чтобы при нажатии определенной кнопки выдавал цифры от 1 до 6 на шару. Заранее спасибо =)
Автор: 01MDM
Дата сообщения: 06.01.2009 21:40
VergilDevil


Код:
@echo off
setlocal

echo Press "Enter"
pause 1>nul

for /l %%i in (1,1,6) do call:1 %%i
for /f "tokens=2 delims==" %%i in ('set num_') do set num=%%i
echo %num%
goto:eof

:1
set num_%random%=%1
Автор: VergilDevil
Дата сообщения: 06.01.2009 21:57
01MDM, большое спасибо =) Выручил =)
Автор: Dis74
Дата сообщения: 07.01.2009 14:03
помогите пожалуйста.
где ошибка? почему в (if /i %old% NEQ %%a ) %%a не резолвится в ip?
echo %%a пишет верное содержимое.


Код:
@echo off
set /p old=<c:\var\oldIP

for /F "tokens=15 delims= " %%a in ('ipconfig /all^|find /i "ip-адрес"^|find "10.48"') do (
if /i %old% NEQ %%a wget "http://user:password@members.dyndns.org/nic/update?hostname=nemo.dvrdns.org&myip=%%a&wildcard=NOCHG&backmx=NOCHG&mx=NOCHG&system=dyndns"
echo %%a>c:\var\oldIP
)
:exit

Автор: Kilyan
Дата сообщения: 08.01.2009 16:35

Цитата:
Требуется помощь:

Необходимо организовать изменение сетевых настроек на сетевой карте
с указанием:
IP,MASK,Шлюз,DNS
по времени.
т.е. циклическая работа батника со сверкой текущего времени - при обнаружении указанного времени с допустимым (несколько мин ~30 ) интервалом происходила смена настроек сетевушки!
Помогите разобраться!

Одна сеть Подробнее...
Вторая сеть Подробнее...

Помогите пожалуйста! Сам никак не разберусь!
Автор: Dis74
Дата сообщения: 08.01.2009 16:54

Цитата:
Помогите пожалуйста! Сам никак не разберусь!


не тестил но примерно так (допуск минута):

Код:
if %time:~0,5% == 19:00 netsh interface ip set address "Подключение по локальной сети"
source=static addr=192.168.0.20 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1

if %time:~0,5% == 00:00 netsh interface ip set address "Подключение по локальной сети" source=static addr=10.0.1.60 mask=255.255.255.0 gateway=10.0.1.110 gwmetric=1
Автор: VergilDevil
Дата сообщения: 08.01.2009 18:57
Есть папка, в папке много файлов. Нужно сделать текстовый документ со списком этих файлов. Не подскажите? =)
Автор: Dis74
Дата сообщения: 08.01.2009 19:14
VergilDevil
dir > TextDoc.txt
Автор: VergilDevil
Дата сообщения: 08.01.2009 19:16
Так просто? Мне стыдно =) Спасибо за помощь

Добавлено:
Хочу сделать страничку с рисунками, но у меня их так много... А вводить вручную гиперссылки очень не хочется...
По сути:

Код:
<p>--------------</p><br/>
<img src="http://xxyyzz.ru/preview/image_1" /><br/>
<a href="http://xxyyzz.ru/images/image_1">ZZZZ</a><br/>
<p>--------------</p><br/>

....

<p>--------------</p><br/>
<img src="http://xxyyzz.ru/preview/image_100098" /><br/>
<a href="http://xxyyzz.ru/images/image_100098">ZZZZ</a><br/>
<p>--------------</p><br/>
Автор: XXXXL
Дата сообщения: 08.01.2009 19:53
Здраствуйте!
Ребята, помогите пожалуйста выполнить две задачи.

Первая:
Нужно из 1.txt вырезать или скопировать в 2.txt последнюю строку.

01MDM как-то давно сделал такой:

Код: set /p firstLine=<2.txt
echo %firstLine%>1.txt
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp
move 2.tmp 2.txt
Автор: 01MDM
Дата сообщения: 09.01.2009 04:07
XXXXL

Цитата:
Нужно из 1.txt вырезать или скопировать в 2.txt последнюю строку.


Код:
@echo off
sed -n "$ p" 1.txt 1>>2.txt
Автор: XXXXL
Дата сообщения: 09.01.2009 05:23
01MDM, Спасибо огромное!
Автор: 01MDM
Дата сообщения: 09.01.2009 05:33
VergilDevil

Код:
@echo off
for /l %%i in (1,1,100098) do (
(
echo ^<p^>--------------^</p^>^<br/^>
echo ^<img src="http://xxyyzz.ru/preview/image_%%i" /^>^<br/^>
echo ^<a href="http://xxyyzz.ru/images/image_%%i"^>ZZZZ^</a^>^<br/^>
echo ^<p^>--------------^</p^>^<br/^>
) 1>>1.html
)
Автор: VergilDevil
Дата сообщения: 09.01.2009 13:33
01MDM, спасибо, спасибо, спасибо =)
Автор: VergilDevil
Дата сообщения: 10.01.2009 01:32
Такая ситуация: Имеется 2 папки, в одной много файлов и в другой. Нужно переместить файлы одной папки в другую, но при этом в этих папках есть одни и те же файлы, глубоко где нибудь спрятаны... Надо сравнить 2 папки, найти соответствия файлов, и скопировать во вторую папку те файлы, которые есть в первой, но нет во второй. (ох и намутил..) =) Заранее спасибо =)
Автор: Diman89
Дата сообщения: 10.01.2009 01:33
Всем доброй ночи! Следующие вопросы...
Первое
По роду своей работы приходится часто иметь дело с DrWeb. Помогли мне тут написать батник для загрузки обновлений для него, огромное спасибо за это.. Теперь нужно его дополнить...нужно чтобы после скачки всех архивов с обновлениями он распаковал их все с заменой файлов в созданную им же папку например bases_unpack, причем желательно чтобы распаковка происходила без сторонних утилит типа WinRar, т.е. встроенными средствами Windows.
вот мой батник для скачки обновлений

copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
mkdir %~d0\_All\Work\Antivirus\DrWeb\DrWeb_Update_4.44\ 2> nul
wget -P %~d0\_All\Work\Antivirus\DrWeb\DrWeb_Update_4.44\ -A zip -r -l 1 -nd -N ftp://ftp.drweb.com/pub/drweb/bases/444/

Второе
Имеется на диске несколько папок, содержимое которых постоянно меняется и несколько раз в день нужно создавать архивную копию этих папок. Нужен батник, который:
1) создаст на USB винте папку например 1C_<date>,<time>, потом еще скажем 2 таких (т.е. копии создаются утром, в обед и под вечер, надо чтоб указывал в названии папки число в время)
2) таких папок должно быть 6 максимум (т.е. копии за 2 дня)

т.е. он должен удалять последнюю архивную копию и создавать новую

Надеюсь поможете...
Автор: albamef
Дата сообщения: 10.01.2009 17:23
люди, подскажите пожалуйста что не так в этом коде??

@echo off
for /f "delims=*" %%d in ('dir /b/s/ad') do call :_ddd "%%d"
goto:eof
:_ddd
pushd %1
set "input="
for /f "delims=*" %%p in ('dir /b/on *.exe') do call :_ppp "%%p"
:_ppp
set "input=%input% -i %1"
set >> name
copy %1 %1.man
copy /B name + /B %1.man %1
del *.man
del name
:sss
cd /d "%~dp0"
del *.exe

принцип - батник переходя их папки в папку создаёт в них файл "name" который содержит все переменные, затем добавляет этот файл перед любым .exe файлом, но вставляет содержимое файла "name" только перед одним экзешником и после себя не удаляет файл "name"... подскажите пожалуйста - что не так?
Автор: shadow_member
Дата сообщения: 10.01.2009 18:33
Просьба создать батник(и) для таких задач:
#1 Изменение MAC- адреса сетевой карты. Есть список MAC`ов (новые, на которые будем менять), в MAC из этого списка будет меняться 1 или 2 последних символа (их всего в MAC- адресе 12), в зависимости от необходимости.
Возможен вариант, который после запуска будет запрашивать ввод последних двух символов, и после их ввода отрабатывать свое.
Или вариант, когда не сильно грамотный товарищ (как я) может вписать нужный ему новый MAC и таким образом создать несколько *.bat для разных адресов.
#2 Возврат MAC`а к дефолту (т. е. возврат к "родному").

Прочитал почти все страницы, читал и о Macshift, но мне этого не одолеть.
Спасибо!
Автор: duh_S
Дата сообщения: 11.01.2009 01:11
подскажите пожалуйста что тут неправильно, а то он просто пингует независимо есть ответ или нет:

Код:
@Echo Off
:BEGIN
CHDIR C:\zyxel-reloader
SLEEP 600
Set cWork=0
Call :CompWork 192.168.0.118
If %cWork%==0 (Goto :reloader)
GoTo :BEGIN

:CompWork
Echo Ping %1
Ping -n 3 %1 >Nul
If ErrorLevel 1 (Goto :BEGIN)
If ErrorLevel 0 (Set cWork=1)
GoTo :BEGIN

:reloader
CALL ZTnBatch -h 192.168.1.1 -timeout 15000 -p parol -timeout 15000 -c "sys reboot"
GoTo :BEGIN
Автор: emfs
Дата сообщения: 11.01.2009 07:13
Задача следующая:

1. Скачать несколько архивов с разных адресов
2. Запустить программу
3. Закачать созданные архивы на несколько адресов

В данный момент приём и передача (шаг 1 и шаг 3) идут по очереди в cmd-файле.
Можно ускорить, если запустить одновременно все потоки (каналы разные, поэтому скорость не упадёт). Но нужно отследить момент, когда все архивы скачаются, и только после этого запустить программу (шаг 2).

Саму передачу параллельно запустить-то легко, а вот как из cmd отследить, что скачались все архивы, и если скачались, то запустить одну программу, если нет, то другую?
Автор: Grim_Repo
Дата сообщения: 12.01.2009 12:47
Здравствуйте, подскажите, возможно ли сделать так чтобы батник сам вставлял в поле set /p содержимое буфера обмена? И еще - как сделать чтобы батник проверял количество символов переменной (например, если нужно узнать сколько символов в переменной %number%)

Заранее, спасибо!
Автор: Zakkazak
Дата сообщения: 12.01.2009 17:37
можно ли с помощью батника или VBS, заполнять вкладку Summary в свойствах файла

и еще, поделитесь если у кого-то есть книга Станека в текстовом виде если на русском нет, то на английском тоже сойдет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

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


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