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

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

Автор: Dimau1981
Дата сообщения: 04.04.2010 23:49
В общем, все получилось. Спасибо огромное!
Автор: king_stiven
Дата сообщения: 05.04.2010 09:43
Насчёт дескрипторов, вот это:
1>nul 2>&1
и это:
1>nul 2>nul
одинаково?
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 11:05

Цитата:
есть скрипт (проверка наличия папки)

Код:cd\
dir /b/ad "G:\scripts\TEST"
if exist "G:\scripts\TEST\s s\nul" echo.hi
pause

вот листинг
G:\scripts\TEST>cd\

G:\>dir /b/ad "G:\scripts\TEST"
s s

G:\>if exist "G:\scripts\TEST\s s\nul" echo.hi

G:\>pause
Для продолжения нажмите любую клавишу . . .

что я делаю не так?




Добавлено:
K1ska

Цитата:
я тока начинаю в это вникать думаю для начала будет достаточно... заочница...

Уильям Станек - Командная строка Microsoft Windows
Автор: gryu
Дата сообщения: 05.04.2010 11:38
Коллеги помогите.
Запутался я.
Как получить переменную "T" равную настоящая дата и время минус 5 минут. ....
Нужно для выбора файлов для обработки.
Т.е. операция должна проводится только над файлами с датой создания не старше 5 минут.
Остальные файлы должны игнорироваться.
(если можно, то с пояснениями в тексте, чтоб потом сам делал, а не других дёргал)
Автор: wolf0425
Дата сообщения: 05.04.2010 11:50
king_stiven

Цитата:
Насчёт дескрипторов, вот это:
1>nul 2>&1
и это:
1>nul 2>nul
одинаково?
если в нуль отправляешь - практической разницы не будет.
А если не nul а какой-то файл - то очень даже будет.
1>nul 2>&1 = перенаправить stdout в нуль, stderr в stdout

Добавлено:
mugil_cephalus
Цитата:
что я делаю не так?
да ты то вроде всё правильно делаешь - это
if exist "G:\scripts\TEST\s s\nul" чего-то глючит: не понимает когда одновременно \nul и кавычки. Порознь - понимает.

так что если надо проверять наличие каталога c пробелами в пути, то наверно придется так:
dir /b "G:\scripts\TEST\s s\" 1>nul 2>&1 && echo.hi
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 12:25
wolf0425

Цитата:
да ты то вроде всё правильно делаешь - это
if exist "G:\scripts\TEST\s s\nul" чего-то глючит: не понимает когда одновременно \nul и кавычки. Порознь - понимает.

спасибо большое

Добавлено:
K1ska

Цитата:
mugil_cephalus а через функцию IF возможна это сделать
Как нить так
if [not] exist fail.txt else fail.txt не найден

это по задаче № 1 - ?
да, можно, если известны диск и путь до файла
Автор: king_stiven
Дата сообщения: 05.04.2010 13:17
gryu
В шапке, там vbs скрипты есть со временем, их поправить наверно можно, только если не здесь то на их форуме спроси.
Автор: gryu
Дата сообщения: 05.04.2010 14:29
king_stiven
Цитата:
В шапке, там vbs скрипты есть со временем,
гм. vbs это хорошо, но мешать всё в кучу напряжно.
Хотелось бы командной строкой.
Неужели нет такой команды типа find /путь/ -mtime +180 -mindepth 1 -delete в *nix?
Означает "найти и удалить все файлы старше 180 дней"
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 14:30
tails80486

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

знаю gui-решение:
Восстановление данных из .chk файлов см. CHKParser32

Автоматическая сортировка
Вот, в принципе, и всё, целый один chk-файл мы опознали и вернули на место. Но ведь это только один файл, а их может быть порядка тысячи и более… Что же, просматривать все файлы вручную? Правильно! Конечно же нет… Благодарим Михаила Маврицина, который написал, с моей точки зрения, наиболее толковую из бесплатных программ для автоматической сортировки .chk. Итак, приветствуем нашего помощника – CHKParser32.
Автор: wolf0425
Дата сообщения: 05.04.2010 14:36

Цитата:
Означает "найти и удалить все файлы старше 180 дней"
нету. в стандартном комплекте вообще с обработкой дат туго.
forfile.exe умеет понять на тему 180 дней, но у дельта даты именно в днях - минуты она не поймет.
Автор: king_stiven
Дата сообщения: 05.04.2010 14:58
gryu
так там эти vbs файлики из пары строк сразу и создаются из комстроки.
Автор: Dimau1981
Дата сообщения: 05.04.2010 15:08
Доброго времени суток.
Подскажите плиз - нужно запустить батник из другого:
echo @echo off > 1.bat
echo start /wait wget --http-user=admin --http-password=************ http://192.168.0.1/restart.cgi >> 1.bat
echo del restart.cgi ^>^>nul >> 1.bat
echo echo Перезагрузка займет две минуты...>>1.bat
echo nircmd wait 122000 >>1.bat
echo nircmd cmdwait 1000 killprocess cmd.exe >>1.bat
echo del 1.bat ^>^>nul >> 1.bat
start 1.bat

после этого нужно закрыть окно командной строки и удалить 1.bat. Получается только одно - или закрыть, или удалить. Понятно почему так просиходит, но не понятно как совместить - и закрыть, и удалить...
Автор: K1ska
Дата сообщения: 05.04.2010 15:24

Цитата:
это по задаче № 1 - ?
да
Автор: gryu
Дата сообщения: 05.04.2010 16:22
king_stiven
см ПМ.
Автор: wolf0425
Дата сообщения: 05.04.2010 16:48
Dimau1981
расскажи - зачем тебе батник то прибивать принудительно, да ещё так варварски, почему не дождаться чтоб он просто закончился и закрыл свое окно?


Код: @echo off
1> %temp%\reboot.bat (
    echo @echo off
    echo start /b cmd /c 2^>nul 1^>nul wget -t 1 -O - --http-user=admin --http-password=************ http://192.168.0.1/restart.cgi
    echo echo Перезагрузка займет две минуты...
    echo ping -n 121 localhost ^>nul
    echo del "%%~f0" ^& exit
)
start "rebooting" %temp%\reboot.bat
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 16:55
K1ska

Код: rem @echo off
cd\
chcp 1251>nul
set "file=G:\scripts\TEST\klichko.bokser"
if exist "%file%" (echo.The file %file% exists.) else echo.The file %file% not found.
set "file="
chcp 866>nul
pause
Автор: king_stiven
Дата сообщения: 05.04.2010 17:19
gryu
http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=0&limit=1&m=4#1
http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=379&limit=1&m=1#1
сделай пару движений мышкой и реши для себя, подходит тебе или нет.
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 17:26
ustas1983

Цитата:
Всем спасибо за помощь большое! Получилось следующее:

Этот bat-фаил включает VPN соединение :

Код:rasphone -d "название"


Этот bat-фаил выключает VPN соединение :

Код:rasdial "название" /DISCONNECT


Все проверено, все работает. )

http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1600#6
Автор: Dimau1981
Дата сообщения: 05.04.2010 17:43
wolf0425, спасибо!
Прерывал, т.к. до этого - start /b cmd /c 2^>nul 1^>nul - не додумался...
Автор: anzibal
Дата сообщения: 05.04.2010 18:32
Доброе всем время суток. Нужна ваша помощь. Нужно сделать, чтобы при запуске bat файла, отменялось выполнение ПРЕДпоследнего назначенного задания. Я думаю сделать так: чтобы создавался тхт со списком всех заданий, из этого списка каким-то образов отсеивалось предпоследние задание и отменялось его выполнение.
Список создать вроди как получилось
mkdir %SYSTEMDRIVE%\OUT
schtasks >\OUT\temp.txt

Но понятия не имею как выполнить этот поиск. Зарание большое спасибо тем, кто поможет разобраться
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 20:08
anzibal
вот предпоследнее задание (но код требует кастомизации) :

chcp 1251>nul
for /f "tokens=1-4* skip=6 delims= " %%a in ('dir /a-d/o-d/tc %systemroot%\Tasks') do set "var=%%~e" &&goto:exit
:exit
pause


Цитата:
отменялось


F:\Documents and Settings\admin>schtasks /?

SCHTASKS /параметр [аргументы]

Описание:
Позволяет администратору создавать, удалять, изменять и опрашивать
запланированные задачи в локальной или удаленной системе. Заменяет AT.exe.

Параметры:
/Create Создание запланированной задачи.

/Delete Удаление запланированной задачи или задач.

/Query Вывод данных о всех запланированных задачах.

/Change Изменение свойств запланированной задачи.

/Run Немедленное выполнение запланированной задачи.

/End Остановка выполняющейся запланированной задачи.

что значит отменялось?? это delete или end - ??
Автор: anzibal
Дата сообщения: 05.04.2010 20:26
delete....
У меня получилось отсортировать список.
с сохранением в файл.
CHCP 1251
schtasks >C:\temp.txt
for /F "skip=3 tokens=*" %%i in (temp.txt) do echo %%i >>"C:\spisok.txt"
Смотрел команду find но не понял как она действует.
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 20:37
anzibal
что у тебя показывает мой код?
Автор: anzibal
Дата сообщения: 05.04.2010 20:40

C:\>chcp 1251 1>nul

C:\>for /F "tokens=1-4* skip=6 delims= " %a in ('dir /a-d/o-d/tc C:\WINDOWS\Task
s') do set "var=%~e" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=" && goto:exit

C:\>set "var=свободно" && goto:exit

C:\>pause
Для продолжения нажмите любую клавишу . . .
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 20:45
anzibal
введи в консоли dir /a-d/o-d/tc %systemroot%\Tasks и покажи какой у тебя формат отображения даты и времени
напримаеР, у меня -

01/28/2009 11:54 AM 284 AppleSoftwareUpdate.job
Автор: anzibal
Дата сообщения: 05.04.2010 20:52
05.04.2010 21:41 154 4.job
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 20:54
anzibal
тогда поменяй в коде tokens=1-3* ...... и set "var=%%~d" и запусти код - будет предпоследнее
Автор: anzibal
Дата сообщения: 05.04.2010 21:13

C:\>chcp 1251 1>nul

C:\>for /F "tokens=1-3* skip=6 delims= " %a in ('dir /a-d/o-d/tc C:\WINDOWS\Task
s') do set "var=%~d" && goto:exit

C:\>set "var=5.job" && goto:exit

C:\>pause
Для продолжения нажмите любую клавишу . . .

После просмотра списка заданий, из 5 все 5 на месте

Тут изменил skip=6 на 5, теперь выводить как бы предпоследние
C:\>set "var=4.job" && goto:exit

Но опять же, в списке задание по прежнему висит
Автор: mugil_cephalus
Дата сообщения: 05.04.2010 21:21
anzibal
это пока был код поиска
вот код удаления :
код удаления предпоследнего без предупреждения
chcp 1251>nul
for /f "tokens=1-3* skip=5 delims= " %%a in ('dir /a-d/o-d/tc %systemroot%\Tasks') do set "var=%%~d" &&goto:exit
:exit
set "var2=%var:~-4%"
if /i "_%var2%" equ "_.job" del /a: /q "%systemroot%\Tasks\%var%"
pause

вот упростил
chcp 1251>nul
for /f "tokens=1-3* skip=5 delims= " %%a in ('dir /a-d/o-d/tc %systemroot%\Tasks') do set "var=%%~d" &&goto:exit
:exit
if /i "_%var:~-4%" equ "_.job" del /a: /q "%systemroot%\Tasks\%var%"
pause
Автор: anzibal
Дата сообщения: 05.04.2010 21:27
А, всё понял. Блин интересная эта штука. Нужно заняться с этим, разобраться. Спасибо большое Вам за оказанную помощь.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

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


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