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

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

Автор: Engraf
Дата сообщения: 08.09.2010 10:00
А есть где-нить справочник по кодам ошибок различных команд (aka %ERRORLEVEL%)?
Вот например для xcopy я кое-как нашел на каком-то форуме, а для net use так и не нашел.
Автор: wolf0425
Дата сообщения: 08.09.2010 10:32
Mark_Titov
Цитата:
а как нужно..?
а никак, переменная time НЕ должна определяться в батниках, чтоб %time% работало как текущее время.
зачем собственно я и предложил тебе проверить - что будет если её принудительно разопределить перед использованием, вдруг где-то ты её случайно определил и нам не сказал.
Автор: Mark_Titov
Дата сообщения: 08.09.2010 11:21

Цитата:
а никак, переменная time НЕ должна определяться в батниках, чтоб %time% работало как текущее время.

Так тогда он мне пишет так -

08.09.2010 13:19:51,07 0% loss
Автор: wolf0425
Дата сообщения: 08.09.2010 11:46

Цитата:
Так тогда он мне пишет так -
08.09.2010 13:19:51,07 0% loss
кто пишет?
do 1>>%log% echo.%date% %time:~,8% %%a в твоем батнике? ты нас обманываешь!
Автор: Mark_Titov
Дата сообщения: 08.09.2010 12:16

Цитата:
ы нас обманываешь!

Ну делать мне больше нечего...

Цитата:
do 1>>%log% echo.%date% %time:~,8%

Нет я просто когда ставлю %time%, тогда и пишет...

А сейчас с %time:~,8% одно и тоже время пишет -


08.09.2010 14:15:25 0% loss
08.09.2010 14:15:25 0% loss
08.09.2010 14:15:25 0% loss


Добавлено:
Может в винде какие траблы могут быть..?
Винда английская...

Та строка которая пишет дату и время вот у меня -


Код: for /f "tokens=2 delims=()" %%a in ('ping -n 4 %site%') do 1>>%log% echo.%DATE% %time:~,8% %%a
Автор: wolf0425
Дата сообщения: 08.09.2010 12:18

Цитата:
Нет я просто когда ставлю %time%, тогда и пишет...
и при чем тут это, когда выше тынаписал что в батнике %time:~,8% ?
нафига ты пишешь текст одного батника, а жалуешься на лог другого?

когда ты добавляешь в батник set time=%time:... - %time% совершенно законно, по твоей команде, перестает соответствовать текущему времени.

Добавлено:

Цитата:
Может в винде какие траблы могут быть..?
Винда английская...
в голове у тебя траблы.
вставь строку set "time=" непосредственно перед строкой с %time:~,8%
Автор: GORA2
Дата сообщения: 08.09.2010 12:26
Mark_Titov

У Вас какая система, английская? У меня в логе пишет
Цитата:
08.09.2010 0:00:05 0% потерь
а не как у Вас
Цитата:
08.09.2010 13:19:51,07 0% loss


Попробуйте считывать переменные %date% %time% один раз в начале цикла и записать их в свои переменные, которые и будете использовать далее в цикле:
Код: cls
set tim=%time%
set dat=%date%
...
set "mes=%dat:~-7%"
2>nul MD "%systemdrive%\%mes%\%dat%"
...
for /f "tokens=2 delims=()" %%a in ('ping -n 4 %site%') do 1>>%log% echo.%dat% %tim:~,8% %%a
...
Автор: Free_Soft
Дата сообщения: 08.09.2010 12:28
wolf0425
Возвращаясь к записям в DNS столкнулся с проблемой. Команда netsh interface ip add dns не понимает имени интерфейса типа "Подключение по локальной сети" или "Local Area Connections", хотя в хелпе указываюся именно они. Ну может и к лучшему, ибо язык системы может быть установлен любой. А понимает команда имя интерфейса в виде "{BXXXXXXX-9XXX-4XXX-8XXX-DXXXXXXXXXXX}". Я так понимаю, что при разных инсталляциях Windows это имя меняется или нет? Откуда его можно считать? в ipconfig /all его нету...
Автор: Mark_Titov
Дата сообщения: 08.09.2010 12:31

Цитата:
нафига ты пишешь текст одного батника, а жалуешься на лог другого?

Я пишу текст всегда одного батника (и уже не первый раз)...


Цитата:
когда ты ставишь в батнике set time=%time:...

Я давно уже его отключил и пробую другие варианты...
Автор: wolf0425
Дата сообщения: 08.09.2010 12:33

Цитата:
не понимает имени интерфейса типа "Подключение по локальной сети" или "Local Area Connections"
у тебя наверно проблема с кодировкой
или сохраняй батник в ОЕМ или пиши его в 1251, но и в сам батник впиши переключение на 1251.

в виндово-гуишном списке соединений - соединение то как называется? по русски?


Цитата:
Я так понимаю, что при разных инсталляциях Windows это имя меняется или нет?
наверняка меняется, если не клонированием винды сделаны. guid можно из регистри выдрать, но лучше разберись с кодировками, через имя интерфейса всё работало, я когда-то делал.


Добавлено:
Mark_Titov
Цитата:
Я пишу текст всегда одного батника (и уже не первый раз)...
ну да, и при этом жалуешься на сообщение, которое написанный тут тобою двумя страницами ранее код выдавать просто не может.
А выдает у тебя потому, что ты чего-то в нем поменял, "пробуя другие варианты", и мы должны догадываться - чего. Причем я на 100% уверен что ты так и не попробовал сделать то, что тебе было сказано сделать.

будешь ещё раз приводить "неправильный" лог - не поленись приожить (под more) полный текст батника, что этот лог печатал.
Автор: Free_Soft
Дата сообщения: 08.09.2010 12:44
wolf0425
Да, проблема действительно в кодировке. вопрос тогда, как унифицировать батник, чтобы на системах с разным языком использовать можно было.... ммм.. К тому же, подключение можно ведь и переименовать ведь. может все же по коду {BXXXXXXX-9XXX... как то его идентифицировать можно?
Автор: wolf0425
Дата сообщения: 08.09.2010 12:57

Цитата:
как унифицировать батник, чтобы на системах с разным языком использовать можно было.... ммм.. К тому же, подключение можно ведь и переименовать ведь.
ну так ipconfig выдает же имя соединения? перехватить вывод и пропарсить.

upd спропарсить будут проблемы - там от языка формат переключается.


Цитата:
может все же по коду {BXXXXXXX-9XXX... как то его идентифицировать можно?

как-то - наверно можно. поищи у себя это {BXXXXXXX-9XXX в регистри (поиском), хоть посмотрим где оно там...
Автор: Free_Soft
Дата сообщения: 08.09.2010 13:03
wolf0425
да где оно, я знаю,
Только на всех машинах он разный или нет? Можешь у себя посмотреть?
Автор: wolf0425
Дата сообщения: 08.09.2010 13:12

Цитата:
да где оно, я знаю,
зато я не знаю, а самомму искать лень.
Автор: Free_Soft
Дата сообщения: 08.09.2010 13:15
wolf0425
Нажми "редактировать" и увидишь))
Автор: wolf0425
Дата сообщения: 08.09.2010 13:18

Цитата:
Нажми "редактировать" и увидишь))
ты не умничай, ты путь к этому ключику в регистри напиши.

Автор: Free_Soft
Дата сообщения: 08.09.2010 13:20
Говорю нажми "редактировать" на моем сообщении, и под # увидишь полные пути.
Автор: wolf0425
Дата сообщения: 08.09.2010 13:26
Free_Soft
на виртуалке с ХП - интерфейсы {0D7BA7FD-560A-4 {78D52303-8929-4 {A581EECE-B4A1-4
на боевой семерочной {903AD47C-879B-4F7 {e29ac6c2-7037-11d {78030DEF-EFD3-4E4 {B7A4C074-30C0-401
так что разные гуиды...

на семерке у меня мамкина сетевушка на {903AD47C - по ветке регистри это вполне понятно.

Автор: Free_Soft
Дата сообщения: 08.09.2010 13:28
wolf0425
Понятно. ладно, будем ручками вводить
Автор: wolf0425
Дата сообщения: 08.09.2010 13:38

Цитата:
Понятно. ладно, будем ручками вводить
да сделай два варианта - для русских и английских виндов, переключайся между ними по выводу ipconfig, имя сетки оттуда и выцепишь...
Автор: Free_Soft
Дата сообщения: 08.09.2010 14:16
wolf0425

Код: Настройка протокола IP для Windows


Подключение по локальной сети - Ethernet адаптер:

DNS-суффикс этого подключения . . :
IP-адрес . . . . . . . . . . . . : xx.xx.xx.xx
Маска подсети . . . . . . . . . . : xxx.xxx.xxx.x
Основной шлюз . . . . . . . . . . : xx.xx.xx.x
Автор: sergio147
Дата сообщения: 08.09.2010 15:00
bomzzz, wolf0425

Спасибо за помощь со счётчиком!

Автор: Andrue
Дата сообщения: 08.09.2010 16:01
поспрашиваю в PowerShell e
Автор: wolf0425
Дата сообщения: 08.09.2010 16:11

Цитата:
Тогда подскажи, как из всего этого выудить 2-ю строку (думаю, что Ethernet останется неизменным при любом языке) и загнать в переменную то, что написано ДО него?
оптимист. в английском там порядок слов другой:
Код: Ethernet adapter Local Area Connection:
Автор: king_stiven
Дата сообщения: 08.09.2010 16:11

Цитата:
проверяет свободное место на диске
если оно меньше опред значения (100МБ)

утиль freedisk в конце предыдущей части мелькало или в шапке
Автор: SANIOK_AV
Дата сообщения: 08.09.2010 16:23
Доброго времени суток!
Подскажите пожалуйста как удалить файл независимо от установленных ему атрибутов?
Если делаю так:
Код: del /f /q /a:r /a:h /a:a /a:s имя_файла
Автор: wolf0425
Дата сообщения: 08.09.2010 16:25

Цитата:
утиль freedisc в конце предыдущей части мелькало или в шапке
да свободное место можно и из dir \ выцепить, не проблема.
сложность там в поиске самых старых по дате создания файлов.

AndrueЕсли бы хоть по времени модификации - можно было бы фором вручную пройтись с подкаталогами, посмотреть самую старую дату и запомнить файл у неё.
Там точно нельзя как-то по имени/пути файлов вычислить что вон тот - самый старый?

да, и удалять надо начинать когда осталось ~200Мб, а не 100 (или сколько там мег за час пишется). оставлять 101 - это запись уже могла встать за прошедший час, что неправильно.
Автор: king_stiven
Дата сообщения: 08.09.2010 16:28

Цитата:
сложность там в поиске самых старых по дате создания файлов.

сложности нет, уж сколько примеров было, просто хлопотно вспоминать
Автор: wolf0425
Дата сообщения: 08.09.2010 16:28
SANIOK_AV

Цитата:
Подскажите пожалуйста как удалить файл независимо от установленных ему атрибутов?
del /f /a- "имя_файла"
Автор: Andrue
Дата сообщения: 08.09.2010 16:33
мож Powershell ом?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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