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

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

Автор: Den13V
Дата сообщения: 04.06.2010 11:39
wolf0425

не пойму


Цитата:
1. строка нужна, если батник запустишь до 10 часов утра.


а что будет если запущу до 10 утра без этой строки?

когда стоит эта строка в имени файла вместо времени стои 0.


Цитата:
2. пробел появляется потому что ты его сам написал в конце строки set timenew=%teminew: =0%
3. правильно было писать set "timenew=%teminew: =0%"


пробел остается и так и эток.
Автор: wolf0425
Дата сообщения: 04.06.2010 11:42

Цитата:
Подскажи пожалуйста еще как вывести время в формате часы:минуты:секунды
echo.%time:~0,-3%
Автор: Den13V
Дата сообщения: 04.06.2010 11:43
wolf0425



Цитата:
1. строка нужна, если батник запустишь до 10 часов утра с неудачными настройками системы.



перевел время на 9:36, попробовал без
Цитата:
set "timenew=%teminew: =0%"
прекрасно отработал.
Автор: us0r
Дата сообщения: 04.06.2010 11:43
wolf0425
Поэтому обратил внимание на параметры: отыскивается окно в т.ч. и по заголовку.
Т.е. имеется строка в tasklist с инфой об окне, PID и т.д. Словили окно, сохранили PID- работаем спокойно.
ЗЫ: Окно- имеется ввиду заголовок (title).
Автор: Den13V
Дата сообщения: 04.06.2010 11:45
wolf0425

Цитата:
%time:~0,-3%


спасибо, сработало.
Автор: wolf0425
Дата сообщения: 04.06.2010 11:47

Цитата:
а что будет если запущу до 10 утра без этой строки?

а там "%time%" в может быть " 9:59:59,25" - т.е. с пробелом, если в системных настройках так установлено (причем это по умолчанию в части систем).
"%timenew%" соответственно будет " 9.59"
а с этой строкой - "09.59"
бужешь добавлять %timenew% в середину/конец имени файла - почувствуешь разницу.


Цитата:
пробел остается и так и эток.

гонишь. значит пробел ты добавил в какую-то предыдущую строку, устанавливающую timenew
Автор: Unitaz
Дата сообщения: 04.06.2010 11:51
граждане а как из батничка MBR занулить вместе с первыми 64 секторами ?
Автор: wolf0425
Дата сообщения: 04.06.2010 12:05

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


Цитата:
Т.е. имеется строка в tasklist с инфой об окне, PID и т.д. Словили окно, сохранили PID- работаем спокойно.
соответственно словили два PID - свой и соседсткий.
когда таймер закончится - вместо убития себя убьем соседа и выйдем, а своя пауза останется...


а тут все гарантированно:
1. проверка наличия нужного процесса (паузы) делается по строке его запуска, т.е в худшем случае мы не видим что "нашу" паузу уже сняли и видим висящую паузу в соседнем батнике со случайно совпавшим %random%
2. когда батнику надоедает ждать он устанавливает своему окну имя killme и убивает по этому имени окна себя с дочерним (зависший на паузе) батником идущий в этом же окне. Если вдруг будет параллельный батник с таким именем окна - то тоже на стадии самоубийства, и пофиг чей килл кого убьет. смысла возни с запоминанием pid - напрочь не видно.

можешь написать лучше - напиши, оценим. а критиковать все горазды

ps: чего-то tasklist /m /fi "windowtitle eq 123" показывает мне только один PID,
процесса породженного start /b "123" cmd.exe /q /k "pause & exit" - вообще не видно.

pps: советы как работающий батник может точно определить СВОЙ PID при наличии параллельно запущенных своих копий - принимаются. пока ничего умнее установки уникального имени окна не придумалось.
Как получить pid своих дочерних процессов - что-то вообще идей нет...
как прибить только порожденные процессы, не прибивая головной - идей тем более нет.
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 13:47
wolf0425

Цитата:
опущенно специально: если какое ещё окно сдуру установило title killme - тo наверно оно тоже хочет чтоб его закрыли

прям не система , а клуб самоубийц

Цитата:
не знаю где используется только 8, но cmd.exe от xp sp3 eng - различие в 10м знаке вполне замечает, :timerloop и :timerloop2 - считает разными метками

дежавю: походу , "трудности перевода"
Автор: wolf0425
Дата сообщения: 04.06.2010 13:56

Цитата:
прям не система , а клуб самоубийц

ну если ты знаешь другой способ батнику убить конкретно свое окно - пиши, чего ржать то


Цитата:
дежавю: походу , "трудности перевода"
cmd.exe от xp sp3 rus - тоже замечает
Автор: igor_andreev
Дата сообщения: 04.06.2010 14:19

Цитата:
как из батничка MBR занулить

http://www.terabyteunlimited.com/downloads/mbr.zip
Автор: wolf0425
Дата сообщения: 04.06.2010 14:32
насколько большой max_id у команды at и он вообще есть?
если постоянно добавлять/убавлять задачи - id точно не переполнится?
Автор: duh_S
Дата сообщения: 04.06.2010 15:30
подскажите плз, как в файле поменять старый ip на новый (через sed -i но незнаю как):

начинаем батник

Код:
for /f "tokens=2" %%A in ('netsh interface ipv4 show config "Беспроводное сетевое соединение"^|find /I "IP-адрес"') do set CURRIP=%%A
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 15:59
wolf0425

Цитата:
ну если ты знаешь другой способ батнику убить конкретно свое окно - пиши, чего ржать то


Код: exit
Автор: wolf0425
Дата сообщения: 04.06.2010 16:44
duh_S sed -i -r "s/^host=.*$/host=%currip%/gi" %path_config_ini%



Добавлено:
mugil_cephalus

Цитата:

Цитата: ну если ты знаешь другой способ батнику убить конкретно свое окно - пиши, чего ржать то

Код: exit
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 17:04
wolf0425

Цитата:
так этот код завершает только один батник - в котором выполняется.

да я шучу...
перечитай свой фразеологизм -

Цитата:
опущенно специально: если какое ещё окно сдуру установило title killme - тo наверно оно тоже хочет чтоб его закрыли

вот он меня и раззадорил, как представлю систему с кучей окон с тайтлами killme и скрипт, как в "матрице" , который их отлавливает и терминирует - какойто сюрреалистический кошмар сисадмина
тогда
Код: shutdown -r
Автор: wolf0425
Дата сообщения: 04.06.2010 17:18

Цитата:
перечитай свой фразеологизм -
да в твоей цитате отсутствует главное - смайлик на конце


Цитата:
вот он меня и раззадорил, как представлю систему с кучей окон с тайтлами killme и скрипт, как в "матрице" , который их отлавливает и терминирует - какойто сюрреалистический кошмар сисадмина
ну если обломались или ещё почему-то не сработали штатные механизмы киляния окон - то путь скрипт киляет по тайтлам, да Не мне же этим заниматься
Автор: BagaBaga
Дата сообщения: 04.06.2010 17:19
Интересно, а есть тулзы командной строки, которые позволяют менять свойства/метаинформацию документа Word (автор, организация и т.д.)
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 17:21
wolf0425

Цитата:
проверил - при длине 127 символов goto метки ещё не путает, при бОльшей - goto роняет cmd

ооооооо....... без комментариев
Автор: wolf0425
Дата сообщения: 04.06.2010 17:25

Цитата:
Интересно, а есть тулзы командной строки, которые позволяют менять свойства/метаинформацию документа Word (автор, организация и т.д.)
врядли - формат закрытый, так что напрямую в бинарник лезть никому не надо.
А вот на vbs написать командлайную тулзу, которая будет инсталлированный ворд напрягать поменять что-то в метаинформации файла - наверно можно, спроси в их форуме.
Автор: us0r
Дата сообщения: 04.06.2010 17:26
BagaBaga
Есть тулза от M$ сносящая в /dev/null всю служебную (мета?) инфу из доков.
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 17:33
BagaBaga
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=5312#1
Автор: wolf0425
Дата сообщения: 04.06.2010 18:13

Цитата:
ооооооо....... без комментариев

на ту же тему:
если есть строка с меткой длиной 128+ символов - то goto не видит никаких меток после неё. эта метка должна быть меткой - т.е лишние : или пробелы - незачет.



Автор: Den13V
Дата сообщения: 04.06.2010 18:57
wolf0425


Цитата:
а там "%time%" в может быть " 9:59:59,25" - т.е. с пробелом, если в системных настройках так установлено (причем это по умолчанию в части систем).
"%timenew%" соответственно будет " 9.59"
а с этой строкой - "09.59"
бужешь добавлять %timenew% в середину/конец имени файла - почувствуешь разницу.


1) батник запускается строго через 30мин. ( 9:00:00, 9:30:00, 10:00:00, 10:30:00 и т.д. круглые сутки), поэтому запустится ему в 9:59:59,25, как то ни есть реально.

2) %timenew% записуется в конец имени файла, если ты обратил внимание об этом написано выше в моих сообщениях (rezerv_error_copy_%timenew%.rar), при возврате %time% и правда получаем " 9.36.25,40", но при добавлении %time% в имя (в конец) пробел перед 9 уходит и результ такой "rezerv_error_copy_9.36 .rar" пробел остается только в конце.


Цитата:
Цитата:пробел остается и так и эток.


гонишь. значит пробел ты добавил в какую-то предыдущую строку, устанавливающую timenew


а ты собственно сам то пробовал, я перед тем как писать опробовал данные варианты.

текст ввода time :

set timenew=%time:~0,-3%
set timenew=%timenew::=.%
rename rezerv_OTData_half-hour.rar "rezerv_error_copy_time-%timenew%.rar"

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

это предложенный твой вариант, опробуй

set timenew=%time:~0,-3%
set "timenew=%timenew::=.%"
rename rezerv_OTData_half-hour.rar "rezerv_error_copy_time-%timenew%.rar"





Добавлено:
wolf0425

при тексте

1. set timenew=%time:~0,5%
2. set timenew=%timenew: =0%
3. set "timenew=%timenew::=.%"
4. rename rezerv_OTData_half-hour.rar "rezerv_error_copy_time-%timenew%.rar"

в результате:

1. C:\set timenew=19:04
2. C:\set timenew=19:040
3. C:\set timenew=19.040
4. C:\rezerv_error_copy_time-19.040.rar

при тексте

1. set timenew=%time:~0,-3%
2. set timenew=%timenew: =0%
3. set "timenew=%timenew::=.%"
4. rename rezerv_OTData_half-hour.rar "rezerv_error_copy_time-%timenew%.rar"

в результате:

1. C:\set timenew=19:08:00
2. C:\set timenew=19:08:000
3. C:\set timenew=19.08.000
4. C:\rezerv_error_copy_time-19.08.000.rar
Автор: mugil_cephalus
Дата сообщения: 04.06.2010 19:41
wolf0425
глянь (сейчас стохастически наткнулся; не читал - то , не то ) - http://www.robvanderwoude.com/batchtools.php GetPIDs Find the current batch file's Process ID
Автор: wolf0425
Дата сообщения: 04.06.2010 20:27
Den13V

Цитата:
1) батник запускается строго через 30мин. ( 9:00:00, 9:30:00, 10:00:00, 10:30:00 и т.д. круглые сутки), поэтому запустится ему в 9:59:59,25, как то ни есть реально.
так нет разницы между 9:00* и 9:59* - пробел в %time% содержится в обоих случаях совершенно одинаковый.


Цитата:
2) %timenew% записуется в конец имени файла, если ты обратил внимание об этом написано выше в моих сообщениях (rezerv_error_copy_%timenew%.rar)
я конечно обратил внимание, что %timenew% добавляется в середину имени нового файла, перед расширением. и пробел перед временем тебе наверно не нужен, а желателено бы его земенить на 0 или убрать.


Цитата:
но при добавлении %time% в имя (в конец) пробел перед 9 уходит и результ такой "rezerv_error_copy_9.36 .rar" пробел остается только в конце.

на само деле результат твоего кода - будет такой: "rezerv_error_copy_ 9.36 .rar"
пробел перед 9 остался потому что ты его никуда не убирал,а после 36 пробел лепится потому что ты сеты без кавычек пишешь, причем пишешь невнимательно - добавил пробел в конце строки set timenew=%time:~0,-3%

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


Цитата:
при тексте
в результате:
добавь перед тестом строку
set "time= 9:00:00,00"
раз уж тебе влом проверять переставляя время на 9 часов. и посмотри на результат ещё раз.

правильно код, который ты хотел написать, пишется примерно так

Код: set "time= 9:00:00,00"
set "timenew=%time:~0,2%.%time:~3,2%"
rename rezerv_OTData_half-hour.rar "rezerv_error_copy_time-%timenew: =0%.rar"
Автор: Altus
Дата сообщения: 04.06.2010 22:32
Den13V
wolf0425
вот блин. ожидая копипаст, специально засунул в тег "code".
не помогло =) надо наверно, ещё ентер в конце тыкать.

Код: 1
2
3
Автор: wolf0425
Дата сообщения: 04.06.2010 22:58
Altus у тебя то там пробела нет, по крайней мере сейчас - т.е. это самодеятельность Den13V, причем непонятно откуда взявшаяся - пробел влеплен в первую строку из трех, на глюк копипаста не тянет.
А вообще чтоб об такие пробелы не спотыкаться - надо и приучать себя ставить кавычки у всех подозрительных сетов, с ними спокойнее и код лучше контролируется чем на концевые пробелы.


Автор: Altus
Дата сообщения: 05.06.2010 08:49
wolf0425
В тексте нет, но после копипаста появляется именно в последней строке. Может ещё от браузера зависит? У меня FF.
А с кавычками Вы правы. Так было бы надёжнее.
Автор: wolf0425
Дата сообщения: 05.06.2010 10:12
да, за пробел в конце последней строки надо благодарить FF - сравнил, после копирования Айроном пробела в клипборде нет.
А вот откуда у клиента пробел в конце первой строки взялся - это ниразу не объясняет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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