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

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

Автор: Nagual
Дата сообщения: 07.10.2008 17:00
sevasmr1986
такого не может быть
так ты сам пишешь или все таки спрашиваешь как написать?
делай так
IF %ERRORLEVEL%==0 (GOTO :GOOD) ELSE GOTO:ERROR

Добавлено:
да, можно и без goto

IF %ERRORLEVEL%==0 (
rem "одна ветка дейсвий"
команды 1
...)
GOTO :GOOD
) ELSE (
rem "другая ветка действий"
команды 2
...)
Автор: Elroir
Дата сообщения: 07.10.2008 17:12
Nagual

Цитата:
такого не может быть

Может, может :-)
Ping в некоторых случаях (и на некоторых системах) всегда возвращает 0.
Проверку в таких случаях надо делать так:

Код:
ping xxx.xxx.xxx.xxx | find /i "TTL=">nul
if %errorlevel%==0 ....
Автор: Shadowland
Дата сообщения: 07.10.2008 19:01
помогите плиз сделать батник чтобы когда размер определённой папки скажем c:/temp превышает 400 Мб из неё бы удалялись все файлы превышающие размером 1 Мб с опросом к примеру раз в час ...

или чтоб просто удалять из папки все файлы превышающие размером 1 Мб

заранее спасибо
Автор: Nagual
Дата сообщения: 07.10.2008 22:40
Shadowland
очень похоже на кеш IE
почему бы не зайти в его настройки и не выставить там кеш, равный 1 Мб?
можно также переопределить папку для хранения кеша
Автор: TatkaS
Дата сообщения: 08.10.2008 00:36
Помогите с написанием батника, плииз. Нужно закачать с ФТП последний свежий архив (с проверкой, есть ли он есть в наличии) с именем типа L_ggggmmdd.zip,
где gggg- год, mm-месяц, dd-день в определенную дирректорию и распаковать?
Не обязательно за текущий день - могут быть выходные, праздники. Кроме того, в один день могут быть выложены два архива (за предыдущий и текущий дни).
Автор: Shadowland
Дата сообщения: 08.10.2008 06:07
2Nagual
возможно я неточно выразился
"файлы превышающие размером 1 Мб" каждый, а не все вместе...
т.е. требуется чтобы файлы в папке каждый из которых размером больше 1 Мб удалялись, а файлы в этойже папке каждый из которых меньше 1 Мб оставались
и речь не об IE
Автор: DiZka
Дата сообщения: 08.10.2008 08:47
Приветствую
помогите написать bat-ник а то что то бьюсь бьюсь и не получается с этими циклами неважный из меня программист
В общем суть вот в чем:
Есть директория F:\nod\mirror
в директории есть sfx архив nod32.exe

Задача при наличии в этой директории файла nod32.exe его удалить, написать echo Удаляем nod32.exe и выполнить архивирование ( "C:\program files\winrar\rar.exe" a nod32 F:\nod\mirror -ep1 -m0 -sfx -x*bat -x*.db ) и написать echo Архивируем

Если nod32.exe нет в директории просто выполнить архивирование и написать echo Архивируем. И чтоб сообщение повисело секунд 5
Автор: SoAlDm
Дата сообщения: 08.10.2008 09:16

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


А о каком сценарии идет речь? Где его посмотреть? Подскажите.


Здравствуйте!
Ещё раз обращаюсь с нижайшей просьбой помочь в решении проблемы о которой писал выше вот здесь:
http://forum.ru-board.com/topic.cgi?forum=62&topic=13556&start=1700

Вопрос заключается в том как проконтролировать запущеный процесс? Если он "завис" тогда "убить" его принудительно и выполнить команду для его перезапуска.
Смотрел команды tasklist и taskkill если бы знал как обработать %errorlevel% после их работы все можно было бы сделать. Но такое впечатление. что они этого не дают. Или можно? Или я ошибаюсь?
Автор: noiseless
Дата сообщения: 08.10.2008 10:47
DiZka
наверно, так:

if exist nod32.exe (
echo Удаляем nod32.exe
del /Q nod32.exe
)
start "C:\program files\winrar\rar.exe a nod32 F:\nod\mirror -ep1 -m0 -sfx -x*bat -x*.db"

по поводу паузы см. шапку
Автор: DiZka
Дата сообщения: 08.10.2008 11:17
noiseless
спасибо работает!
Автор: INNO_SANCTUM
Дата сообщения: 08.10.2008 13:46
Народ, помогите разобраться.
Задача несложная: переименовать все файлы в папке, вставив в начало перед именем текущее время в формате HH-MM-SS.

Что пытаюсь сделать сначала, для одного файла:


Код:
@echo off
        set aaa=%time%
        set a1=%time:~0,2%
        set a2=%time:~3,2%
        set a3=%time:~6,2%

        ren file.txt %a1%-%a2%-%a3%_file.txt
Автор: swed
Дата сообщения: 08.10.2008 14:00
ruslanjuve


Цитата:
kak v cmd opredelit startup folder - dlya rus i eng versii windowsa (u menea tak : C:\Documents and Settings\Ruslan!\Start Menu\Programs\Startup = %userprofile%\Start Menu\Programs\Startup) a kak v ruskoi versii windows-a ? mojno kakato avto opredilenie zdelati ili drugie varianti ?!


Иногда может помочь.

Код:
reg query "hkcu\software\microsoft\windows\currentversion\explorer\shell folders" /v Startup
Автор: king_stiven
Дата сообщения: 08.10.2008 15:40
INNO_SANCTUM
ещё вариант

Код: @echo off
for /f %%i in ('dir /b') do (
set "file=%%i"
call :ert
)
goto :eof
:ert
ren "%file%" "%time:~0,2%-%time:~3,2%-%time:~6,2%_%file%"
Автор: dimpase
Дата сообщения: 08.10.2008 16:22
Ой!Здрасте еще раз!
Скажите как при записи в файл строки перевести ее на новую строчку
Допустим пример

Код: set /p "input= ўўҐ¤ЁвҐ ”€Ћ,-зҐаҐ§ § Їпвго!!! : "
set a_in=%input%
echo %a_in%>>FIO.txt
pause
Автор: Nagual
Дата сообщения: 08.10.2008 22:22
Shadowland
Код:
@echo off&chcp 1251>nul
set
/a d=400*1024*1024
:st
for
/f "tokens=2 delims=:" %%a in ('fsutil volume diskfree %systemdrive%') do set "f=%%a"
:: set f=%f: =%

if %f% lss %d% sleep 3600&goto:st
set p="%systemdrive%\%username%"
if exist %p% rd/s/q %p%
md %p%
robocopy %temp% %p%
/create /min:1048576
robocopy %p% %temp% /mov /max:1
robocopy %temp% %p% /mov /max:1
if exist %p% rd/s/q %p%
sleep
3600&goto:st
Автор: Shadowland
Дата сообщения: 09.10.2008 00:50
2Nagual
большое спасибо

пардон, я не силён в этом - можно пояснений к коду ? и куда пихать имя_папки ?
Автор: ruslanjuve
Дата сообщения: 09.10.2008 01:09
swed большое спасибо !
Автор: dimpase
Дата сообщения: 09.10.2008 08:26
Ну помогите а!Срочно надо!
И как сделать чтобы символы <> выводились в текстовый файл,но без кавычек?
Заранее спасибо.


Цитата:
Мужики!!!
А как сделать чтобы
вот это:

Код:@echo off
setlocal
set /p "input= ўўҐ¤ЁвҐ ”€Ћ,-зҐаҐ§ § Їпвго!!! : "
chcp 1251
set a_in=%input%
echo %a_in%>>FIO.txt



после окончания выдавало запрос,-хотите добавить еще запись?[Y]N:
если пользователь вводит Y то код возвращается в начало ветки действий,если нет, то выполняется код батника дальше
???
ПОМОГИТЕ ПЛИЗ ,СРОЧНО НАДО!!!

Автор: yurkesha
Дата сообщения: 09.10.2008 09:26
dimpase 09:26 09-10-2008
Цитата:
как сделать чтобы символы <> выводились в текстовый файл,но без кавычек


Код: [no]echo ^<^>[/no]
Автор: king_stiven
Дата сообщения: 09.10.2008 09:39

Цитата:
после окончания выдавало запрос,-хотите добавить еще запись?[Y]N:

Используй set /p
Цитата:
set /p "input1=continue?[Y]N


Цитата:
если пользователь вводит Y то код возвращается в начало ветки действий

if /i "%input1%"=="y" goto begin
смотри справку по goto, в начало цикла ставь метку :begin
в начале цикла удаляй пременную set input1=
для очистки экрана используй CLS
Автор: dimpase
Дата сообщения: 09.10.2008 09:44
yurkesha
вы меня просмто спасли


Добавлено:
king_stiven
благодарен
Автор: Nagual
Дата сообщения: 09.10.2008 10:57
Shadowland
что конкретно неясно?

папка %temp% неясна?
выполни echo %temp% или set t
папка %p% является временной для выполнения данной задачи
на первом этапе определяется свободное место на системном томе (в байтах)
думаю, что это лучше, нежели, как поставлено в задаче, определять размер папки
если не устраивает, меняй участок кода
далее устанавливаем наше огранчение 400 Мб и переводим его в байты (соразмерную величину), умножая на 1024 (умножал специально для пояснения, хотя можно было просто задать константу)
далее сравниваем оставшееся место на системном томе с нашим значением ограничения
при этом, если свободное место на системном разделе меньше заданного нами, выполняем его очистку, делаем паузу в час и переходим к текущей проверке, в обратном случае просто делаем паузу и переходим к проверке свободного места на системном томе

ессно, задание ограничения можно вынести на вторую строку
если код не работает как надо, пиши, попробуем исправить
Автор: dimpase
Дата сообщения: 09.10.2008 11:13
Еще вопросик можно?
Почему когда у меня программа возвращается к маркеру буквы меняются обратно на досовские,я понял почему,как это исправить??

Код: @echo off
setlocal

::Маркер для использование goto
:vvod
::Очищаем Экрвн
CLS
::Шаблон ВВода
echo "‚ўҐ¤ЁвҐ зҐаҐ§ § Їпвго : €¬п,” ¬Ё«Ёп, ЋвзҐбвў®, „ЁаҐЄжЁп, ’Ґ«.ђ Ў., ’Ґ«.ў-гва., ’Ґ«.¬®Ў., ѓ®а®¤"
::Приглашение для ввода данных
set /p "input= ‚ў®¤ : "
::Объявление использования лат.букв для записи в файл
chcp 1251
::Присвоение ввода пользователя переменной input
set a_in=%input%
::Запись данных введ.пользователем в txt файл
echo %a_in%>>FIO.txt
::Приглашение для создания еще одной записи
set /p "input1=ᮧ¤ вм ҐйҐ ЇҐаҐ¬Ґ--го?[Y]N:"
::Если введено y то переходим к маркеру vvod
if /i "%input1%"=="y" goto vvod
::Присвоение
for /f "tokens=1,2,3,4,5,6,7,8 delims=," %%i in (FIO.txt) do (
set I_name=%%i
set F_name=%%j
set O_name=%%k
set Dir_name=%%l
set Phone_work=%%m
set Phone_in=%%n
set Phone_mob=%%o
set City_name=%%p
call:write
)
goto:eof
::Запись в html из txt
:write
set /a see+=1
echo ^<TR^>^<TD^> %I_name%^</TD^>^<TD^> %F_name%^</TD^>^<TD^>%O_name%^</TD^>^<TD^>%Dir_name%^</TD^>^<TD^>%Phone_work%^</TD^>^<TD^>%Phone_in%^</TD^>^<TD^>%Phone_mob%^</TD^>^<TD^>%City_name%^</TD^>^</TR^> >>html.html

pause
Автор: avkorets
Дата сообщения: 09.10.2008 17:43
Подскажите пожалста
есть такая строка if "!x:~0,7!"=="4081781" сравниваем значение..
а как сделать так чтобы можо было сравнить колво символов в переменной с другим значением?
например так if "!x!"=="7" т.е. условие работает если в переменной 7 символов...?
Автор: Shadowland
Дата сообщения: 09.10.2008 19:25
2Nagual
это для кэша Оперы тобиш конкретно папки cache4
непонятно куда вспихивать название этой самой обрабатываемой папки...
место на системном томе всёж юзается не только этой папкой - поэтому определять всёже надо бы размер именно этой папки...
и в идеале конечно неплохо бы оставлять там ещё и 1 или 5 самых новых файлов с размером больше 1 Мб (так сказать "last played") в дополнение к тем что меньше 1 Мб....
Автор: Nagual
Дата сообщения: 09.10.2008 20:27
Shadowland
убил наповал
opera:config#cache
opera:config#disk%20cache
Автор: Shadowland
Дата сообщения: 09.10.2008 22:56
2Nagual
если бы оно работало так как должно я бы не стал заморачиваться...
я вычищал из этой папки и не один раз и 700 Мб и три с лишним гига при настройке в 200 Мб...
Автор: 01MDM
Дата сообщения: 10.10.2008 03:49
avkorets

Цитата:
например так if "!x!"=="7" т.е. условие работает если в переменной 7 символов...?


Сначала надо получить "длину" переменной

Код:
@echo off
set x=1234567
setlocal enabledelayedexpansion
:1
set /a cnt+=1
if not "!x:~%cnt%,1!"=="" goto:1
if %cnt%==7 (echo %%x%%.length equ 7) else (echo %%x%%.length not equ 7)
Автор: Nagual
Дата сообщения: 10.10.2008 10:57
Shadowland
оффтоп и изврат
смотри тут
cache
disk cache
в идеале регься и спрашивай у оперных аборигенов
Автор: NIKZZZZ
Дата сообщения: 10.10.2008 11:29
Не встречал ли кто-нибудь аналогов diskpart ? Задача простая - есть винт, который надо переразбить. Проблема в том, что diskpart не слишком удобен, из него сложно вытаскивать информацию о разделах.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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