Rush, класная вещь этот ваш скрипт, благодарствую - а то ещё бы с SET заморачивался, не соображая, в сущности, в ДОСе. Только не совсем понятно у вас с годами и месяцами - ведь они имеют всё-таки разную длину в днях. Видимо, подразумевается год - 365 дней, а месяц - 30?
» Командная строка, батники, сценарии (bat, cmd)
Пытаюсь скачать из шапки:
Цитата:
Ничего не получается. Не мог ли бы кто-нибудь перебросить на другой файл хостинг этот файл, пжл (rapidshare, ifolder, depositfiles)?
Цитата:
Справка по командам в виде Html
_http://www.sendspace.com/file/w3ocs7
Ничего не получается. Не мог ли бы кто-нибудь перебросить на другой файл хостинг этот файл, пжл (rapidshare, ifolder, depositfiles)?
lid111
Цитата:
Подразумевается год=1 году, а месяц одному месяцу.
Ничто ведь не мешает [more=поэкспериментировать на достаточно больших промежутках и сравнить правильность ответов]
Для облегчения сравнения результаты записываются в файл.
Код: date1 = inputbox("Введите дату №1" & vbcrlf & vbcrlf & vbcrlf & _
"Например - 01.01.2009 12:00:00", "Калькулятор разности дат", "01.01.2009 12:00:00")
date2 = inputbox("Введите дату №2" & vbcrlf & vbcrlf & vbcrlf & _
"Например - 05.06.2009 11:06:32", "Калькулятор разности дат", "05.06.2009 11:06:32")
arr = array("yyyy", "m", "d", "h", "n", "s")
arr1 = array("лет = ", "месяцев = ", "дней = ", "часов = ", "минут = ", "секунд = ")
for i = 0 to ubound(arr)
sd = datediff(arr(i), cdate(date1), cdate(date2), 2)
res = res & arr1(i) & sd & vbcrlf
next
'msgbox res
set fso = createobject("scripting.filesystemobject")
set resfile = fso.opentextfile("c:\result.txt", 8, true)
resfile.write "---------------------------------------------" & vbcrlf _
& "------------ " & cstr(now) & " ------------" & vbcrlf _
& "---------------------------------------------" & vbcrlf & vbcrlf _
& "Начальная дата - " & date1 & vbcrlf _
& "Конечная дата - " & date2 & vbcrlf & vbcrlf & res & vbcrlf
resfile.close
Цитата:
Видимо, подразумевается год - 365 дней, а месяц - 30?
Подразумевается год=1 году, а месяц одному месяцу.
Ничто ведь не мешает [more=поэкспериментировать на достаточно больших промежутках и сравнить правильность ответов]
Для облегчения сравнения результаты записываются в файл.
Код: date1 = inputbox("Введите дату №1" & vbcrlf & vbcrlf & vbcrlf & _
"Например - 01.01.2009 12:00:00", "Калькулятор разности дат", "01.01.2009 12:00:00")
date2 = inputbox("Введите дату №2" & vbcrlf & vbcrlf & vbcrlf & _
"Например - 05.06.2009 11:06:32", "Калькулятор разности дат", "05.06.2009 11:06:32")
arr = array("yyyy", "m", "d", "h", "n", "s")
arr1 = array("лет = ", "месяцев = ", "дней = ", "часов = ", "минут = ", "секунд = ")
for i = 0 to ubound(arr)
sd = datediff(arr(i), cdate(date1), cdate(date2), 2)
res = res & arr1(i) & sd & vbcrlf
next
'msgbox res
set fso = createobject("scripting.filesystemobject")
set resfile = fso.opentextfile("c:\result.txt", 8, true)
resfile.write "---------------------------------------------" & vbcrlf _
& "------------ " & cstr(now) & " ------------" & vbcrlf _
& "---------------------------------------------" & vbcrlf & vbcrlf _
& "Начальная дата - " & date1 & vbcrlf _
& "Конечная дата - " & date2 & vbcrlf & vbcrlf & res & vbcrlf
resfile.close
Rush, я вам ПМ послал - не заметили?
lid111
Цитата:
Да, вроде, давно уже ответил. Продублировал.
Цитата:
Rush, я вам ПМ послал - не заметили?
Да, вроде, давно уже ответил. Продублировал.
Никто не напишет,как сделать,чтобы при запуске игры,запускалось YASU и автоматом нажимало Cloak?
artem1982
Посмотри в сторону AutoIt или s0m
Посмотри в сторону AutoIt или s0m
ХЕЛП!!! Как осуществить следующее:
Код: echo.for /f "tokens=1,2,3 delims=:" %%%a in ("%time:~0,8%") do (set hh=%%%a) ^& (set mm=%%%b) ^& (set ss=%%%c) >txt.bat
Код: echo.for /f "tokens=1,2,3 delims=:" %%%a in ("%time:~0,8%") do (set hh=%%%a) ^& (set mm=%%%b) ^& (set ss=%%%c) >txt.bat
Цитата:
echo.for /f "tokens=1,2,3 delims=:" %%%a in ("%time:~0,8%") do (set hh=%%%a) ^& (set mm=%%%b) ^& (set ss=%%%c) >txt.bat
Получаеться...
Код: for /f "tokens=1,2,3 delims=:" %time:~0,8%a) & (set mm=%%c)
Scream_Wolf
Код:
Echo for /f "tokens=1,2,3 delims=:" %%a in ("%%time:~0,8%%") do (set hh=%%%%a) ^& (set mm=%%%%b) ^& (set ss=%%%%c)>result.txt
Код:
Echo for /f "tokens=1,2,3 delims=:" %%a in ("%%time:~0,8%%") do (set hh=%%%%a) ^& (set mm=%%%%b) ^& (set ss=%%%%c)>result.txt
Maza_Faka
Исправлена не точность...
Цитата:
Работает спасибо!!!
И еще вопрос... 1.bat создает и запускает 2.bat. Вопрос: как отследить процесс (он ведь CMD.EXE а таких может быть несколько) дабы убить его потом (именно 2.bat) так же батником (taskkill /f /im "cmd.exe" - в этом случае он грохнет все имеющиесь CMD.exe в том числе и себя) При попытке просто удалить 2.bat cmd.exe прекращает выполняться и спрашивает о завершение пакетного файла т е нада нажимать Y/N...
Добавлено:
Помогите с батником...
[more=Код]
set h1=18
set h2=9
set m1=0
set m2=0
set s1=0
set s2=0
set timesleep=30
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
:scan
for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :stop)
if %TimeInSec% Lss %TimeInSec2% (goto :stop)
set server=server1
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server2
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server3
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server4
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server5
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
goto scan
ffline
start hs_message.exe "Сервер %server% не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK
goto %srv%
:TurnOff
start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
del /q /s 1.bat
exit
[/more]
можно ли как-нибудь заставить батник, что-бы он спросил сколько будет серверов для проверки и после этого, в зависимости от указанного количества, спросил имя каждого сервера...
проводя проверку если например юзер отсутствует на месте, и если один из серверов недоступен, то на экране юзера будет полно выведеных сообщений (hs_message.exe)
как-бы сделать так, что бы например если server2 не доступен, то больше одного сообщения не выводилось, но при этом проверка ...и server2... продолжалась
еще бы был бы очень презнателен если в поможете с выводом лога батником...
содержание лога примерно следующее
Код:
01.01.2001 10:00:00 Запуск проверки
01.01.2001 11:00:00 Сервер server2 - недоступен
01.01.2001 12:00:00 Сервер server4 - недоступен
01.01.2001 13:00:00 Сервер server2 - доступен
01.01.2001 14:00:00 Сервер server4 - доступен
01.01.2001 15:00:00 Остановка проверки
Исправлена не точность...
Цитата:
Echo for /f "tokens=1,2,3 delims=:" %%%%a in ("%%time:~0,8%%") do (set hh=%%%%a) ^& (set mm=%%%%b) ^& (set ss=%%%%c)>result.txt
Работает спасибо!!!
И еще вопрос... 1.bat создает и запускает 2.bat. Вопрос: как отследить процесс (он ведь CMD.EXE а таких может быть несколько) дабы убить его потом (именно 2.bat) так же батником (taskkill /f /im "cmd.exe" - в этом случае он грохнет все имеющиесь CMD.exe в том числе и себя) При попытке просто удалить 2.bat cmd.exe прекращает выполняться и спрашивает о завершение пакетного файла т е нада нажимать Y/N...
Добавлено:
Помогите с батником...
[more=Код]
set h1=18
set h2=9
set m1=0
set m2=0
set s1=0
set s2=0
set timesleep=30
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
:scan
for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :stop)
if %TimeInSec% Lss %TimeInSec2% (goto :stop)
set server=server1
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server2
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server3
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server4
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
:%server%
set server=server5
set log=%temp%\%server%.scan
ping -n 1 %server% >%log%
find /i "ttl" "%log%"
if %errorlevel%==1 goto offline
goto scan
ffline
start hs_message.exe "Сервер %server% не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK
goto %srv%
:TurnOff
start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
del /q /s 1.bat
exit
[/more]
можно ли как-нибудь заставить батник, что-бы он спросил сколько будет серверов для проверки и после этого, в зависимости от указанного количества, спросил имя каждого сервера...
проводя проверку если например юзер отсутствует на месте, и если один из серверов недоступен, то на экране юзера будет полно выведеных сообщений (hs_message.exe)
как-бы сделать так, что бы например если server2 не доступен, то больше одного сообщения не выводилось, но при этом проверка ...и server2... продолжалась
еще бы был бы очень презнателен если в поможете с выводом лога батником...
содержание лога примерно следующее
Код:
01.01.2001 10:00:00 Запуск проверки
01.01.2001 11:00:00 Сервер server2 - недоступен
01.01.2001 12:00:00 Сервер server4 - недоступен
01.01.2001 13:00:00 Сервер server2 - доступен
01.01.2001 14:00:00 Сервер server4 - доступен
01.01.2001 15:00:00 Остановка проверки
Всем привет!
Такая проблема. Нужно узнать внешний ip не используя браузер. Наковырял на форуме такой код
@echo off
setlocal
cmd /c wget -c http://www.myip.ru/ 1>nul 2>&1
for /f "tokens=4" %%i in ('findstr .title.* index.html') do set "ip=%%i"
echo %ip%
del index.html
но что-то не срабатывает. Wget уствновлен. Что может быть? Помогите, плз.
Такая проблема. Нужно узнать внешний ip не используя браузер. Наковырял на форуме такой код
@echo off
setlocal
cmd /c wget -c http://www.myip.ru/ 1>nul 2>&1
for /f "tokens=4" %%i in ('findstr .title.* index.html') do set "ip=%%i"
echo %ip%
del index.html
но что-то не срабатывает. Wget уствновлен. Что может быть? Помогите, плз.
ScreamWolf
Цитата:
а попробуй убивать не по имени процесса а по PID
Добавлено:
ScreamWolf
Цитата:
Код: @echo off
set /p "NumberOfServers=Сколько серверов?"
for /l %%a in (1,1,%NumberOfServers%) do (
set /p "ServerName_%%a=Введите имя %%a-го сервера"
)
set ServerName
pause 1>nul
Цитата:
И еще вопрос... 1.bat создает и запускает 2.bat. Вопрос: как отследить процесс (он ведь CMD.EXE а таких может быть несколько) дабы убить его потом (именно 2.bat) так же батником (taskkill /f /im "cmd.exe" - в этом случае он грохнет все имеющиесь CMD.exe в том числе и себя) При попытке просто удалить 2.bat cmd.exe прекращает выполняться и спрашивает о завершение пакетного файла т е нада нажимать Y/N...
а попробуй убивать не по имени процесса а по PID
Добавлено:
ScreamWolf
Цитата:
можно ли как-нибудь заставить батник, что-бы он спросил сколько будет серверов для проверки и после этого, в зависимости от указанного количества, спросил имя каждого сервера...
Код: @echo off
set /p "NumberOfServers=Сколько серверов?"
for /l %%a in (1,1,%NumberOfServers%) do (
set /p "ServerName_%%a=Введите имя %%a-го сервера"
)
set ServerName
pause 1>nul
William Gates
HaK1R
Уже было:
Код:
@Echo Off
Set "TmpFile=%TEMP%\~tmp"
Del /F /Q "%TmpFile%">Nul 2>&1
wget -O"%TmpFile%" "http://whatismyip.com/automation/n09230945.asp" 2>Nul
Set /P _IP=<"%TmpFile%"
Echo %_IP%
Del /F /Q "%TmpFile%"
HaK1R
Уже было:
Код:
@Echo Off
Set "TmpFile=%TEMP%\~tmp"
Del /F /Q "%TmpFile%">Nul 2>&1
wget -O"%TmpFile%" "http://whatismyip.com/automation/n09230945.asp" 2>Nul
Set /P _IP=<"%TmpFile%"
Echo %_IP%
Del /F /Q "%TmpFile%"
HaK1R
Выделонное красным не верно... на этой команде обрыв (не наю посиму ((((( )
[more=Тута код]
@echo off
set "report=report.txt"
set h1=18
set h2=9
set m1=0
set m2=0
set s1=0
set s2=0
set timesleep=30
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
set /a MASS=0
set /p "NumberOfServers=Сколько серверов?"
for /l %%a in (1,1,%NumberOfServers%) do (
set /p "ServerName_%%a=Введите имя %%a-го сервера"
)
(echo %date% %time:~0,8% Запуск проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
:scan
for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :stop)
if %TimeInSec% Lss %TimeInSec2% (goto :stop)
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1
if %errorlevel% 1 (
(echo %date% %time:~0,8% Сервер %%i - недоступен) 1>>%report%
call ffline "%%i"
) else (
(echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report%
)
)
ping -n %timesleep% localhost 1>nul 2>&1
goto :scan
ffline
if MASS==0 (start hs_message.exe "Сервер %~1 не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK)
set /a MASS=1
goto :EOF
:stop
(echo %date% %time:~0,8% Остановка проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
goto :EOF [/more]
Цитата:
а как этим же (1.bat - который создает и запускает 2.bat) батником узнать PID зпущеного батника 2.bat (cmd.exe) если сам 1.bat так же висит в прцессах (!возможно не толбько он!)...
Цитата:
Я просто не знал как
Цитата:
Maza_Faka - работает! СПАСИБО...
Цитата:
Добавлено:
Простите за глупые вопросы, но
Цитата:
почему в скобках (если скобки не пренадлежат FOR'у)
и вопрос на засыпку: в команде GOTO :EOF - 9 (8-без пробела) знаков, когда команда EXIT - в 2 раза короче... зачем тогда использовать переход в конец файла, если можно просто выйти...?
Выделонное красным не верно... на этой команде обрыв (не наю посиму ((((( )
[more=Тута код]
@echo off
set "report=report.txt"
set h1=18
set h2=9
set m1=0
set m2=0
set s1=0
set s2=0
set timesleep=30
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
set /a MASS=0
set /p "NumberOfServers=Сколько серверов?"
for /l %%a in (1,1,%NumberOfServers%) do (
set /p "ServerName_%%a=Введите имя %%a-го сервера"
)
(echo %date% %time:~0,8% Запуск проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
:scan
for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :stop)
if %TimeInSec% Lss %TimeInSec2% (goto :stop)
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1
if %errorlevel% 1 (
(echo %date% %time:~0,8% Сервер %%i - недоступен) 1>>%report%
call ffline "%%i"
) else (
(echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report%
)
)
ping -n %timesleep% localhost 1>nul 2>&1
goto :scan
ffline
if MASS==0 (start hs_message.exe "Сервер %~1 не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK)
set /a MASS=1
goto :EOF
:stop
(echo %date% %time:~0,8% Остановка проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
goto :EOF [/more]
Цитата:
а попробуй убивать не по имени процесса а по PID
а как этим же (1.bat - который создает и запускает 2.bat) батником узнать PID зпущеного батника 2.bat (cmd.exe) если сам 1.bat так же висит в прцессах (!возможно не толбько он!)...
Цитата:
А зачем вот это дублировать?
Я просто не знал как
Цитата:
заставить батник, что-бы он спросил сколько будет серверов для проверки и после этого, в зависимости от указанного количества, спросил имя каждого сервера...так что на этом спасибо большое, теперь будем знать =)
Maza_Faka - работает! СПАСИБО...
Цитата:
Echo Y | Del /F /Q 2.bat
Добавлено:
Простите за глупые вопросы, но
Цитата:
(echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report%
почему в скобках (если скобки не пренадлежат FOR'у)
и вопрос на засыпку: в команде GOTO :EOF - 9 (8-без пробела) знаков, когда команда EXIT - в 2 раза короче... зачем тогда использовать переход в конец файла, если можно просто выйти...?
Maza_Faka
HaK1R
Спасибо!Работает отлично. А можно сохранить полученый ip в файле, в определённом каталоге. Напр., С:\IP\ip.txt?
HaK1R
Спасибо!Работает отлично. А можно сохранить полученый ip в файле, в определённом каталоге. Напр., С:\IP\ip.txt?
William Gates
Код: @Echo Off
Set "TmpFile=%TEMP%\~tmp"
Set DR=%SYSTEMDRIVE%\IP
if not exist "%DR%" md "%DR%"
Del /F /Q "%TmpFile%">Nul 2>&1
wget -O"%TmpFile%" "http://whatismyip.com/automation/n09230945.asp" 2>Nul
Set /P _IP=<"%TmpFile%"
Echo IP-adress:%_IP% >%DR%\ip.txt
Del /F /Q "%TmpFile%"
start notepad %DR%\ip.txt
Код: @Echo Off
Set "TmpFile=%TEMP%\~tmp"
Set DR=%SYSTEMDRIVE%\IP
if not exist "%DR%" md "%DR%"
Del /F /Q "%TmpFile%">Nul 2>&1
wget -O"%TmpFile%" "http://whatismyip.com/automation/n09230945.asp" 2>Nul
Set /P _IP=<"%TmpFile%"
Echo IP-adress:%_IP% >%DR%\ip.txt
Del /F /Q "%TmpFile%"
start notepad %DR%\ip.txt
William Gates
Цитата:
WGET имеет такой ключ:
Код:
wget -O"С:\IP\ip.txt" "http://whatismyip.com/automation/n09230945.asp"
Цитата:
А можно сохранить полученый ip в файле
WGET имеет такой ключ:
Код:
wget -O"С:\IP\ip.txt" "http://whatismyip.com/automation/n09230945.asp"
Maza_Faka
Цитата:
а каталог он тоже создаст?
Добавлено:
HaK1R
I - это окно ИНФОРМАЦИИ
E - окно ошибки
(W - предупреждение Q - вопрос)
Цитата:
удаление 1.bat - это т.е. сам себя удалял...
Добавлено:
HaK1R
Цитата:
я впринцыпе и мечтал об этом... ОГРОМНОЕ СПАСИБО
Цитата:
wget -O"С:\IP\ip.txt" "http://whatismyip.com/automation/n09230945.asp"
а каталог он тоже создаст?
Добавлено:
HaK1R
I - это окно ИНФОРМАЦИИ
E - окно ошибки
(W - предупреждение Q - вопрос)
Цитата:
Посмотри то что синем, привильно ли написано, утилита нет, сам не могу проверить, там во втором в конце Е вместо I появилось, не знаю, нормально ли это.
удаление 1.bat - это т.е. сам себя удалял...
Добавлено:
HaK1R
Цитата:
Я сейчас немного переделаю, не против?
я впринцыпе и мечтал об этом... ОГРОМНОЕ СПАСИБО
ScreamWolf
Цитата:
это чтобы в файл не попадали лишние пробелы, в принцыпе можно без скобочек и единички
Цитата:
когда переходит в конец файла, заканчивается выполнение операции call, и он продолжает выполнение дальше с места вызова функции, а когда exit, он завершает программу, что нам не нужно
Цитата:
тогда лучше не так
Код: del /f /q 1.bat
Цитата:
Простите за глупые вопросы, но
Цитата:
(echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report%
почему в скобках (если скобки не пренадлежат FOR'у)
это чтобы в файл не попадали лишние пробелы, в принцыпе можно без скобочек и единички
Цитата:
и вопрос на засыпку: в команде GOTO :EOF - 9 (8-без пробела) знаков, когда команда EXIT - в 2 раза короче... зачем тогда использовать переход в конец файла, если можно просто выйти...?
когда переходит в конец файла, заканчивается выполнение операции call, и он продолжает выполнение дальше с места вызова функции, а когда exit, он завершает программу, что нам не нужно
Цитата:
удаление 1.bat - это т.е. сам себя удалял...
тогда лучше не так
Код: del /f /q 1.bat
подскажите плиз как у всех файлов в папке убрать приставку New_ в начале
spider91
Код: pushd "C:\ada96faa1b7f6aeaef1414a08756\"
for /f %%i in ('dir /b /a-d') do (call :renfile "%%i")
popd
gotto :EOF
:renfile
set "name=%~1"
ren "%name%" "%name:~4%"
Код: pushd "C:\ada96faa1b7f6aeaef1414a08756\"
for /f %%i in ('dir /b /a-d') do (call :renfile "%%i")
popd
gotto :EOF
:renfile
set "name=%~1"
ren "%name%" "%name:~4%"
HaK1R
спасибо
спасибо
HaK1R
Цитата:
За инфу - СПАСИБО
А вот это можно поконкретнее... что такое "%~0" ? и что значит привязан к имени в этом случае?
Цитата:
Цитата:
я брал в шапке... но сайтик не всегда доступен... если очень нада могу выложить архивчик...
[more=Предупреждаю!]AVAST рубит утилитам бошки![/more]
Цитата:
работает отдельно...
Добавлено:
HaK1R
Цитата:
а у меня аналогичный вопрос... тока мне надо в конце каждого файла (файл является ярлыком - *.lnk) удалить слова с пробелом перед ним "_Управление" (ПОДЧЕРКИВАНИЕ - означает пробел)
Цитата:
когда переходит в конец файла, заканчивается выполнение операции call, и он продолжает выполнение дальше с места вызова функции, а когда exit, он завершает программу
За инфу - СПАСИБО
А вот это можно поконкретнее... что такое "%~0" ? и что значит привязан к имени в этом случае?
Цитата:
del /f /q 1.bat
а так(не будет привязан к имени)
Код:del /f /q "%~0"
Цитата:
А скинь мне ссылку на hs_message.exe а то я найти не могу
я брал в шапке... но сайтик не всегда доступен... если очень нада могу выложить архивчик...
[more=Предупреждаю!]AVAST рубит утилитам бошки![/more]
Цитата:
@echo off
for /f "tokens=1* delims==" %%h in ('set PR') do echo %%i
работает отдельно...
Добавлено:
HaK1R
Цитата:
pushd "C:\ada96faa1b7f6aeaef1414a08756\"
for /f %%i in ('dir /b /a-d') do (call :renfile "%%i")
popd
gotto :EOF
:renfile
set "name=%~1"
ren "%name%" "%name:~4%"
а у меня аналогичный вопрос... тока мне надо в конце каждого файла (файл является ярлыком - *.lnk) удалить слова с пробелом перед ним "_Управление" (ПОДЧЕРКИВАНИЕ - означает пробел)
ScreamWolf
Цитата:
%~0 это ссылка на данный файл
не привязан в смысле
del 1.bat будет работать если сам файл назван как 1.bat
а если del "%~0" то он может быть назван как угодно.
Цитата:
я тогда не знаю почему сбивается на той строчке
spider91
ScreamWolf
я там описался
Код: pushd "C:\ada96faa1b7f6aeaef1414a08756\"
for /f %%i in ('dir /b /a-d') do (call :renfile "%%i")
popd
goto :EOF
:renfile
set "name=%~1"
ren "%name%" "%name:~4%"
Цитата:
А вот это можно поконкретнее... что такое "%~0" ? и что значит привязан к имени в этом случае?
%~0 это ссылка на данный файл
не привязан в смысле
del 1.bat будет работать если сам файл назван как 1.bat
а если del "%~0" то он может быть назван как угодно.
Цитата:
работает отдельно...
я тогда не знаю почему сбивается на той строчке
spider91
ScreamWolf
я там описался
Код: pushd "C:\ada96faa1b7f6aeaef1414a08756\"
for /f %%i in ('dir /b /a-d') do (call :renfile "%%i")
popd
goto :EOF
:renfile
set "name=%~1"
ren "%name%" "%name:~4%"
Цитата:
День добрый!Подскажите как с помощью bat'а отправить файл на указанную по4ту 4ерез outlook.Спасибо.
бат зоздает файл архива на рабочем столе, так вот его и надо отправить по автомату. что нужно добавить в батник??
Нужен маленький батник, буду очень рад помощи!!!
нужно чтоб делалось следущее:
найти на всех дисках все папки (кроме системных) с именами Temp, TMP, не учитывая регистр имени папок, и удалить эти папки без вопросов. На дисках есть WinXP & Win 7
нужно чтоб делалось следущее:
найти на всех дисках все папки (кроме системных) с именами Temp, TMP, не учитывая регистр имени папок, и удалить эти папки без вопросов. На дисках есть WinXP & Win 7
HaK1R
Цитата:
спасибо за инфу...!!!
Цитата:
с шапки не брал? ->
Цитата:
Цитата:
Цитата:
подскажи плиз... и можно ли это сообразить так что бы в начале батника было set /p delstr=.... и кое-нить определение "с конца"/"с начала" искать и править имя... а то по работе частенько встречаються разнообразные группы файлов которые необходимо переименовывать, я конечно тоталом пробовал (вроде ниче), но хотелось бы просто разобраться как это можно при помощу батника делать...
Добавлено:
HaK1R
Цитата:
и все же никак... обрыв на for /f "tokens=1* delims==" %%h in ('set ServerName') ....
Пробовал отдельно такой батник:
Код: set ServerName=192.168.0.1
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1
if %errorlevel% 1 (
echo %date% %time:~0,8% Сервер %%i - недоступен
) else (
echo %date% %time:~0,8% Сервер %%i - доступен
)
)
pause
Цитата:
%~0 это ссылка на данный файл
не привязан в смысле
del 1.bat будет работать если сам файл назван как 1.bat
а если del "%~0" то он может быть назван как угодно.
спасибо за инфу...!!!
Цитата:
А скинь мне ссылку на hs_message.exe а то я найти не могу
с шапки не брал? ->
Цитата:
я брал в шапке... но сайтик не всегда доступен... если очень нада могу выложить архивчик...
Цитата:
я там описался->
Цитата:
тока мне надо в конце каждого файла (файл является ярлыком - *.lnk) удалить слова с пробелом перед ним "_Управление" (ПОДЧЕРКИВАНИЕ - означает пробел)
подскажи плиз... и можно ли это сообразить так что бы в начале батника было set /p delstr=.... и кое-нить определение "с конца"/"с начала" искать и править имя... а то по работе частенько встречаються разнообразные группы файлов которые необходимо переименовывать, я конечно тоталом пробовал (вроде ниче), но хотелось бы просто разобраться как это можно при помощу батника делать...
Добавлено:
HaK1R
Цитата:
@echo offИ еще... вверхнем коде raport.txt (лог) пишится в кодировке 866, можно ли как-нить его писать в 1251?
set "report=report.txt"
set h1=18
set h2=9
set m1=0
set m2=0
set s1=0
set s2=0
set timesleep=30
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
set /a MASS=0
set /p "NumberOfServers=Сколько серверов?"
for /l %%a in (1,1,%NumberOfServers%) do (
set /p "ServerName_%%a=Введите имя %%a-го сервера"
)
(echo %date% %time:~0,8% Запуск проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
:scan
for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :stop)
if %TimeInSec% Lss %TimeInSec2% (goto :stop)
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1
if %errorlevel% 1 (
(echo %date% %time:~0,8% Сервер %%i - недоступен) 1>>%report%
call ffline "%%i"
) else (
(echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report%
)
)
ping -n %timesleep% localhost 1>nul 2>&1
goto :scan
ffline
if MASS==0 (start hs_message.exe "Сервер %~1 не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK)
set /a MASS=1
goto :EOF
:stop
(echo %date% %time:~0,8% Остановка проверки) 1>>%report%
start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK
goto :EOF
и все же никак... обрыв на for /f "tokens=1* delims==" %%h in ('set ServerName') ....
Пробовал отдельно такой батник:
Код: set ServerName=192.168.0.1
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1
if %errorlevel% 1 (
echo %date% %time:~0,8% Сервер %%i - недоступен
) else (
echo %date% %time:~0,8% Сервер %%i - доступен
)
)
pause
ScreamWolf
Цитата:
взял, ссылка работает
Цитата:
в смысле из "Привет тебе.lnk" нкжно "тебе .lnk"?
Цитата:
там где идет запись в файл, перед этой строчкой поставь новую строчку с chcp 1251 1>nul
а после строчки записи поставь строчку с chcp 866 1>nul
попробуй так
Код: set ServerName=192.168.0.1
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL="
)
pause
Цитата:
с шапки не брал? ->
взял, ссылка работает
Цитата:
тока мне надо в конце каждого файла (файл является ярлыком - *.lnk) удалить слова с пробелом перед ним "_Управление" (ПОДЧЕРКИВАНИЕ - означает пробел)
в смысле из "Привет тебе.lnk" нкжно "тебе .lnk"?
Цитата:
еще... вверхнем коде raport.txt (лог) пишится в кодировке 866, можно ли как-нить его писать в 1251?
там где идет запись в файл, перед этой строчкой поставь новую строчку с chcp 1251 1>nul
а после строчки записи поставь строчку с chcp 866 1>nul
попробуй так
Код: set ServerName=192.168.0.1
for /f "tokens=1* delims==" %%h in ('set ServerName') do (
ping -n 1 "%%i" | find /i "TTL="
)
pause
ScreamWolf
вместо коментов ставишь свой код
Код: @echo off
setlocal enabledelayedexpansion
REM блаблабла
call :SeeProcess
REM запускаешь 2.bat
REM blablabla
call :KillProcess
REM blablabla
goto :EOF
:SeeProcess
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "PROCESSOR_PID=!PROCESSOR_PID!,%%i"
)
set "PROCESSOR_PID=%PROCESSOR_PID:~1%"
goto :EOF
:KillProcess
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "kill=1"
for /f "tokens=*" %%a in ('set PROCESSOR_PID ^| findstr "%%i"') do (
set "kill=0"
)
if !kill!==1 (taskkill /PID %%i 1>nul 2>&1)
)
goto :EOF
вместо коментов ставишь свой код
Код: @echo off
setlocal enabledelayedexpansion
REM блаблабла
call :SeeProcess
REM запускаешь 2.bat
REM blablabla
call :KillProcess
REM blablabla
goto :EOF
:SeeProcess
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "PROCESSOR_PID=!PROCESSOR_PID!,%%i"
)
set "PROCESSOR_PID=%PROCESSOR_PID:~1%"
goto :EOF
:KillProcess
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "kill=1"
for /f "tokens=*" %%a in ('set PROCESSOR_PID ^| findstr "%%i"') do (
set "kill=0"
)
if !kill!==1 (taskkill /PID %%i 1>nul 2>&1)
)
goto :EOF
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: SAS.Планета (часть 2)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.