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

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

Автор: Joolz
Дата сообщения: 26.03.2008 10:02
slayer120

Цитата:
Если пинг не проходит надо выключить соотв сетевой интерфейс ( т.е. по ипу, не ответившему пингом найти имя интефейса или название сетевой карты, чтоб выключить).

В товоем коде получается, что ты его рестартуешь, а не выключаешь.
А так, если IP статично привязан к сетевухе, то проблемы составить 3 условия не должно быть.

Код:
Ping -n 1 192.168.0.200 >Nul
If ErrorLevel 1 devcon restart *100010B8*
Ping -n 1 192.168.0.220 >Nul
If ErrorLevel 1 devcon restart *30207068*
Ping -n 1 192.168.0.235 >Nul
If ErrorLevel 1 devcon restart *11007001*
Автор: slayer120
Дата сообщения: 26.03.2008 10:34

Цитата:
В товоем коде получается, что ты его рестартуешь, а не выключаешь

Ну а какая разница поставь выключить включить будет две строчки вместо одной
Твой вариант не подходит предполагается ставить скрипт на разные компы и разные сетевухи, и как по твоему я узнаю их девайс ид, чтоб прописать в батник ? Сейчас делаю тупо - если хотя бы один пинг не проходит - рестартуют все сетевые карточки (PCI). Нужен только файлик с списком ип и devcon. По крайней мере проблема потери связи решена - после рестарта проги начинают пахать. Полный код могу выложить если интересно
Автор: sipok
Дата сообщения: 26.03.2008 11:58
Здрасвствуйте!

НУЖНА ПОМОЩЬ.

У меня есть 5 bat файлов которые запускаються в планировщике задач по дням недели и делают копирование в понед., вторник, среду, четверг и пятницу, в папки от 1 до 5, хотелось бы это все обьеденить в 1 файл и автоматизировать процесс определения дня недели.
Т.е. вначале будет определять день недели и потом копировать в указанную папку.

Например если понедельник то копировать в папку 1:
NET USE B: \\server1\folder
xcopy /Y f:\folder\*.* B:\1\*.*
NET USE B: /delete

Если вторник то в папку 2:
NET USE B: \\server1\folder
xcopy /Y f:\folder\*.* B:\2\*.*
NET USE B: /delete
Автор: Joolz
Дата сообщения: 26.03.2008 12:26
slayer120

Цитата:
как по твоему я узнаю их девайс ид

А сто мешает запустить
Код: psexec -c -s -n 10 \\COMPUTERNAME devcon /find =net
Автор: Dantis
Дата сообщения: 26.03.2008 12:42


Nagual - спасибо за код. Я так понял этот батник просто удоляет на всех дисках файлы с расширением дстмп?

и простите за настойчивость но мне надо именно что бы он запускался из записи в реестреи лежал именно в той папке. и в фоновом режиме.... Если это не трудно реализовать плз помогите нубу. =((
Автор: slayer120
Дата сообщения: 26.03.2008 13:23
Joolz

Цитата:
сто мешает запустить
Код:psexec -c -s -n 10 \\COMPUTERNAME devcon /find =ne

Откуда , за 3000 км до компа без инета? И опять же если этот комп отвалился, на нем pcexec не сработает по любому ( как я понял ты предлагаешь пустить pcexec с другого компа). Интерфейс ты можешь поднять опустить только на самом компе. Так что диспут заканчиваю. См . подробное описание на предыдущей странице.
А как вытащить ип на интерфейсе, где "сетевой кабель не подключен" так никто и не сказал, ведь в свойствах tcpip он есть, а ни ipconfig ни route print ничего про его ип не кажут

Добавлено:

Цитата:
Здесь числа 100010B8, 30207068 и 11007001 - значения входящие в состав HWID сразу после SUBSYS_.

Не совсем так. Если ты будешь рестартить по значениям после сабсис, ты перезагрузишь ВСЕ интерфейсы такого типа, ибо они отличаются Лишь последней 4-кой символов, поэтому я делал рестарт КОНКРЕТНОГО интерфейса именно так

Цитата:
for /f "tokens=1,2* delims=:" %%d in (' "devcon.exe find =net | find /i "PCI" " ') do (
devcon.exe restart @*"%%d"
)

те для рестарта используется полная строка devID

Добавлено:
Dantis

Цитата:
Если это не трудно реализовать плз помогите нубу

Посмотри здесь похожая проблем обсуждается
Автор: 01MDM
Дата сообщения: 26.03.2008 14:51
sipok
Если есть wmic

Код:
@echo off
for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (
if not %%i gtr 5 if not %%i equ 0 (

NET USE B: \\server1\folder
xcopy /Y f:\folder\*.* B:\%%i\*.*
NET USE B: /delete

)
)
Автор: Nagual
Дата сообщения: 26.03.2008 15:58
Dantis
Код: @echo off
if not exist %~n0.vbs echo>%~n0.vbs CreateObject("WScript.Shell").Run"%0",0&reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v dctmp /d "\"%~dp0%~n0.vbs\"" /f
for %%a in (c d) do if exist %%a: del/q/f/s %%a:\*.dctmp
Автор: Dantis
Дата сообщения: 27.03.2008 00:38
Спасибо. почти все работает.... = 0при перезагрузке компа он ен удалял файлы с расширение дстмп. я подпрравил...все работает...еще раз спасибо
Автор: xxxdavidoffxxx
Дата сообщения: 27.03.2008 08:32
Здравствуйте, у меня такая проблема.
Надо сделать бэкап на postgresql. там запускается файлик pg_dump.exe с кучей параметров, естественно хочу все автоматизировать. Но при запуске файла прога спрашивает пароль для админа. как сделать в батнике чтоб он подставлял туда пароль, если такое возможно. и хотелось бы еще скрипт чтоб сохранял на компе 5 бэкапов(т.е. бэкап в понедельник, вторник, ... а когда наступит понедельник заменил бы первый и т.д.), а затем заменял их...
Спасиб
Автор: gbcfkf
Дата сообщения: 27.03.2008 09:20
Nagual

Цитата:
в кавычки следует заключать не сам символ пробела(ов), а полный путь к исполняемому файлу, содержащий в себе пробел(ы) и др. спецсимволы

Так тоже работает..
Дело было в том, что каждую команду вида "%path1%vmware-cmd
надо выполнять с приставкой start..

Подскажите что за ерунда.
закачиваю на ftp файл. Батник:

Код: @ECHO on
ftp -s:ftp.txt
Автор: sipok
Дата сообщения: 27.03.2008 12:32
01MDM

Цитата:
Код:
@echo off
for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (
if not %%i gtr 5 if not %%i equ 0 (

NET USE B: \\server1\folder
xcopy /Y f:\folder\*.* B:\%%i
NET USE B: /delete

)
)

Записал код в файл 1.cmd на f:\folder\scripts, прописал в "Планировщике задач" запускать данный файл в определенное время.
выдает ошибку : Unable to create directory - B:\4
хотя данная директория уже существет.

xcopy /Y f:\folder\*.* B:\%%i\*.* выполняеться как \*.* xcopy /Y f:\folder\*.* B:\%%i

\*.* - удалил, хотя особой разницы не дало
Автор: slayer120
Дата сообщения: 27.03.2008 13:42
sipok
из справки к ХСОРУ :
Указание в качестве результата файла или каталога
Если параметр результат не содержит существующий каталок < так написано в справке >или не заканчивается обратной чертой(\), выводится следующее сообщение
Что означает destination:
имя файла или каталога
(F = файл, D = каталог)?

Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог

Значит - либо ставь на конце значок \,
xcopy /i /Y f:\folder\*.* B:\%%i\
либо юзай /i

Цитата:
xcopy /i /Y f:\folder\*.* B:\%%i

Автор: Nagual
Дата сообщения: 27.03.2008 13:57
Dantis, да, все верно, поправил код
родной утилой ftp не работаю
юзаю для этих целей curl
текущая версия без ssl
[more]Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a/--append Append to target file when uploading (F)
--basic Use HTTP Basic Authentication (H)
--cacert <file> CA certificate to verify peer against (SSL)
--capath <directory> CA directory to verify peer against (SSL)
-E/--cert <cert[:passwd]> Client certificate file and password (SSL)
--cert-type <type> Certificate file type (DER/PEM/ENG) (SSL)
--ciphers <list> SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip)
-K/--config Specify which config file to read
--connect-timeout <seconds> Maximum time allowed for connection
-C/--continue-at <offset> Resumed transfer offset
-b/--cookie <name=string/file> Cookie string or file to read cookies from (H)
-c/--cookie-jar <file> Write cookies to this file after operation (H)
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
-d/--data <data> HTTP POST data (H)
--data-ascii <data> HTTP POST ASCII data (H)
--data-binary <data> HTTP POST binary data (H)
--data-urlencode <name=data/name@filename> HTTP POST data url encoded (H)
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
-D/--dump-header <file> Write the headers to this file
--egd-file <file> EGD socket path for random data (SSL)
--engine <eng> Crypto engine to use (SSL). "--engine list" for list
-f/--fail Fail silently (no output at all) on HTTP errors (H)
-F/--form <name=content> Specify HTTP multipart POST data (H)
--form-string <name=string> Specify HTTP multipart POST data (H)
--ftp-account <data> Account data to send when requested by server (F)
--ftp-alternative-to-user String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-P/--ftp-port <address> Use PORT with address instead of PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-ssl Try SSL/TLS for ftp transfer (F)
--ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode [active/passive] Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)
--ftp-ssl-reqd Require SSL/TLS for ftp transfer (F)
-G/--get Send the -d data with a HTTP GET (H)
-g/--globoff Disable URL sequences and ranges using {} and []
-H/--header <line> Custom header to pass to server (H)
-I/--head Show document info only
-h/--help This help text
--hostpubmd5 <md5> Hex encoded MD5 string of the host public key. (SSH)
-0/--http1.0 Use HTTP 1.0 (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i/--include Include protocol headers in the output (H/F)
-k/--insecure Allow connections to SSL sites without certs (H)
--interface <interface> Specify network interface/address to use
-4/--ipv4 Resolve name to IPv4 address
-6/--ipv6 Resolve name to IPv6 address
-j/--junk-session-cookies Ignore session cookies read from file (H)
--keepalive-time <seconds> Interval between keepalive probes
--key <key> Private key file name (SSL/SSH)
--key-type <type> Private key file type (DER/PEM/ENG) (SSL)
--krb <level> Enable kerberos with specified security level (F)
--libcurl <file> Dump libcurl equivalent code of this command line
--limit-rate <rate> Limit transfer speed to this rate
-l/--list-only List only names of an FTP directory (F)
--local-port <num>[-num] Force use of these local port numbers
-L/--location Follow Location: hints (H)
--location-trusted Follow Location: and send auth to other hosts (H)
-M/--manual Display the full manual
--max-filesize <bytes> Maximum file size to download (H/F)
--max-redirs <num> Maximum number of redirects allowed (H)
-m/--max-time <seconds> Maximum time allowed for the transfer
--negotiate Use HTTP Negotiate Authentication (H)
-n/--netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
-N/--no-buffer Disable buffering of the output stream
--no-keepalive Disable keepalive use on the connection
--no-sessionid Disable SSL session-ID reusing (SSL)
--ntlm Use HTTP NTLM authentication (H)
-o/--output <file> Write output to <file> instead of stdout
--pass <pass> Pass phrase for the private key (SSL/SSH)
--post301 Do not switch to GET after following a 301 redirect (H)
-#/--progress-bar Display transfer progress as a progress bar
-x/--proxy <host[:port]> Use HTTP proxy on given port
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-negotiate Use Negotiate authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
-U/--proxy-user <user[:password]> Set proxy user and password
-p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
--pubkey <key> Public key file name (SSH)
-Q/--quote <cmd> Send command(s) to server before file transfer (F/SFTP)
--random-file <file> File for reading random data from (SSL)
-r/--range <range> Retrieve a byte range from a HTTP/1.1 or FTP server
--raw Pass HTTP "raw", without any transfer decoding (H)
-e/--referer Referer URL (H)
-O/--remote-name Write output to a file named as the remote file
-R/--remote-time Set the remote file's time on the local output
-X/--request <command> Specify request command to use
--retry <num> Retry request <num> times if transient problems occur
--retry-delay <seconds> When retrying, wait this many seconds between each
--retry-max-time <seconds> Retry only within this period
-S/--show-error Show error. With -s, make curl show errors when they occur
-s/--silent Silent mode. Don't output anything
--socks4 <host[:port]> SOCKS4 proxy on given host + port
--socks4a <host[:port]> SOCKS4a proxy on given host + port
--socks5 <host[:port]> SOCKS5 proxy on given host + port
--socks5-hostname <host[:port]> SOCKS5 proxy, pass host name to proxy
-Y/--speed-limit Stop transfer if below speed-limit for 'speed-time' secs
-y/--speed-time Time needed to trig speed-limit abort. Defaults to 30
-2/--sslv2 Use SSLv2 (SSL)
-3/--sslv3 Use SSLv3 (SSL)
--stderr <file> Where to redirect stderr. - means stdout
--tcp-nodelay Use the TCP_NODELAY option
-t/--telnet-option <OPT=val> Set telnet option
-z/--time-cond <time> Transfer based on a time condition
-1/--tlsv1 Use TLSv1 (SSL)
--trace <file> Write a debug trace to the given file
--trace-ascii <file> Like --trace but without the hex output
--trace-time Add time stamps to trace/verbose output
-T/--upload-file <file> Transfer <file> to remote site
--url <URL> Set URL to work with
-B/--use-ascii Use ASCII/text transfer
-u/--user <user[:password]> Set server user and password
-A/--user-agent <string> User-Agent to send to server (H)
-v/--verbose Make the operation more talkative
-V/--version Show version number and quit
-w/--write-out [format] What to output after completion
-q If used as the first parameter disables .curlrc[/more]
Автор: igor_andreev
Дата сообщения: 27.03.2008 14:11
gbcfkf

Цитата:
В результате получаю бесконечный поток
ftp -s:ftp.txt

такое ощущение, что запущен в бесконечном цикле батник ECHO ftp -s:ftp.txt
Ниче не понимаю..

не ты первый, не ты последний... Переименуй свой ftp.cmd или ftp.bat во что-нить другое, он же у тебя сам себя запускает.
Автор: sipok
Дата сообщения: 27.03.2008 15:34
slayer120


Цитата:
Значит - либо ставь на конце значок \,
xcopy /i /Y f:\folder\*.* B:\%%i\
либо юзай /i


При выполнении xcopy /Y f:\folder\*.* B:\%%i\*.*
или xcopy /i /Y f:\folder\*.* B:\%%i --- уже пробовал )))
выдает ошибку : Unable to create directory - B:\4
Автор: Elroir
Дата сообщения: 27.03.2008 16:46
sipok
Возьми B:\%%i\*.* и B:\%%i в кавычки
и поставь все-таки обратный слэш в конце.
Автор: Rush
Дата сообщения: 27.03.2008 17:03
Разрешите пару вопросов...
1) Посмотрел про замену в файлах через sbs2.com - эта утилитка регэкспы понимает?
2) А стандартными средствами замену сделать можно? С регулярными, конечно...
Автор: Nagual
Дата сообщения: 27.03.2008 17:42
Rush, 2) если сильно постараться, думаю, можно
for %%a in (TXTSETUP.SIF DOSNET.INF) do more %%a|findstr/v winntbbu.dll>>%%a_&move/y %%a_ %%a
такую конструкцию использовал для удаления строк, содержащих winntbbu.dll
также если удалить еще winntbbu.dl? из дистрибутива winnt, мы получим клаcсическую установку winnt с полным описанием процесса установки и необходимыми прогресс барами
findstr/r — Поиск строк как регулярных выражений
но опять же тут свои подводные камни есть и это как всегда спецсимволы
имхо на скриптах с этим проблем никаких нет, и, поскольку ты в них силён, почему бы не использовать их? тем более, что и скорость обработки файлов возрастает в разы даже по сравнению с sbs2.com
Автор: Blibass
Дата сообщения: 27.03.2008 17:48
Всем привет.У меня такой вопрос,возможно ли реализовать с помощью bat пароль на СD-DVD диск. Что бы с загрузки CD-DVD сразу появлялось строка(окно) для ввода пароля для этого же СD-DVD диска.Если да, то прошу обьяснить как сделать.
Автор: Elroir
Дата сообщения: 27.03.2008 18:01
Rush

Цитата:
1) Посмотрел про замену в файлах через sbs2.com - эта утилитка регэкспы понимает?

Нет.

Blibass

Цитата:
У меня такой вопрос,возможно ли реализовать с помощью bat пароль на СD-DVD диск

Нет.
Автор: Blibass
Дата сообщения: 27.03.2008 18:17
Elroir. Спасибо за ответ
Автор: Rush
Дата сообщения: 27.03.2008 18:30
Nagual

Цитата:
имхо на скриптах с этим проблем никаких нет, и, поскольку ты в них силён, почему бы не использовать их? тем более, что и скорость обработки файлов возрастает в разы даже по сравнению с sbs2.com

Ты прав, конечно, для себя я напишу скрипт, если надо. Но дело в том, что мне нужна такая команда, про которую антивирус не будет выдавать запрос на авторизацию скрипта.
Хотелось сделать, типа, расширение стандартной команды StrChange (аналог Replace) для Multimedia Builder. Под девизом - никаких дополнительных библиотек. Плагин или утилитку сделать не проблема, но... было желание средствами винды. Такие, понимаешь, пироги...

Добавлено:

Цитата:
findstr/r — Поиск строк как регулярных выражений
но опять же тут свои подводные камни есть и это как всегда спецсимволы

Надо попробовать. Может спецсимволы в кавычках или еще каким образом выводятся из процесса чтения как управляющие...
Автор: Ortios
Дата сообщения: 28.03.2008 00:07
А что, неужели нет никакой утилитки работающей с регулярными выражениями и которую можно прикрутить к бат-файлу. Может кто знает.
Несколько лет назад мне попалась какая-то версия утилитки Advasar сейчас уже найти не могу. Так вот, в диалоговом режиме она работала блестяще, пожалуй даже лучше, чем фаровский плагин S&R и помнится мне, что у Advasara была возможность работать из командной строки, используя настроечный ini-файл, но мне тогда не удалось довести до ума эту возможность и заставить батник работать в автомате поскольку прога была платной и задавала вопросы типа продолжать дальше или нет. Ключа к ней я так и не достал и забросил ее. Сейчас же, роясь в инете я натыкался на версию Advasara, но она по-прежнему платная 100$. Может у кого есть полная версия?
Автор: 01MDM
Дата сообщения: 28.03.2008 00:56
Ortios

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

Почему нет.
sed,awk,grep и прозводные от них - [a-z]sed, .grep и т.д
Автор: Nagual
Дата сообщения: 28.03.2008 01:17
Rush
Цитата:
Но дело в том, что мне нужна такая команда, про которую антивирус не будет выдавать запрос на авторизацию скрипта.
попробуй гибридный сценарий, может поможет
Автор: gbcfkf
Дата сообщения: 28.03.2008 03:22
igor_andreev

Цитата:
не ты первый, не ты последний... Переименуй свой ftp.cmd или ftp.bat во что-нить другое, он же у тебя сам себя запускает.

Спасибо, помогло!

А как можно скопировать файлы с сервера в свою конкретную папку?
Т.е. есть на сервере папка 1\ в которой куча файлов, подпапок, в них снова файлы и т.д. А нужно папку 1\ со всем содержимым скопировать на свой локальный компьютер.. скажем в папку D:\2\
Это возможно?
Попробовал так:
prompt n
mget 1\*.*

Но такая команда не затрагивает подпапки.. да и копирует папку по умолчанию(насколько понимаю, в туже папку, что и в источнике)

update.. короче погуглил, получается что для этой задачи надо использовать сторонние программы, а хотелось бы встроенными средствами..
Ладно, буду мучать wget



Автор: slayer120
Дата сообщения: 28.03.2008 10:24
sipok

Цитата:
При выполнении xcopy /Y f:\folder\*.* B:\%%i\*.*


Цитата:
Значит - либо ставь на конце значок \,

Ну а зачем в B:\%%i\*.* *.* на конце указываешь?
Вот такой код работает у меня
@echo off
for /f "tokens=1* delims= " %%i in ('dir /A:D /B') do (
rem echo %%i
xcopy /Y c:\temp\*.* \\comp\share\temp\%%i\

)
Копирует все файлы из каталога temp каталоги существующие в текущей папке
(я создал 1, 2, 3 каталоги) если их нет в приемнике они создаются
Автор: Nagual
Дата сообщения: 28.03.2008 14:04
господа, кто сталкивался с rsync
докачивает ли она файлы на сервер по протоколу ftp
если нет, то какая тулза обладает такими возможностями?
Автор: JohnRD
Дата сообщения: 28.03.2008 14:19
добрый день/вечер

нашел вариант запуска бат файла через RUNAS причем вписывая пароль (если необходимо)


Код: set WshShell = CreateObject("WScript.Shell")
WshShell.Run "runas /user:domain\ivanov-aa ""\\domain.local\soft\1.cmd"""
WScript.Sleep 100
WshShell.Sendkeys "password~"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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