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

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

Автор: Kardinalli
Дата сообщения: 22.05.2009 10:10
Почему не могу удалить файл такой строкой:
del \q "%userprofile%"\Local Settings\Application Data\file.txt
расположенный по соответственному адресу:
c:\Documents and Settings\user\Local Settings\Application Data\file.txt ?
Отвечает "файл не найден".
Автор: Rush
Дата сообщения: 22.05.2009 10:17
Kardinalli

Код: del \q "%userprofile%\Local Settings\Application Data\file.txt"
Автор: 01MDM
Дата сообщения: 22.05.2009 10:31
khrusTby
Наверное нельзя.
'set /p' будет ждать ввода с клавиатуры.
Автор: Taciturn
Дата сообщения: 22.05.2009 10:33
del /q "%userprofile%\Local Settings\Application Data\file.txt"
Автор: Kardinalli
Дата сообщения: 22.05.2009 10:38
Rush
Taciturn
слэш в del /q правильно в батнике написал, это в посте ошибка, а вот то, что закрывающую кавычку надо было в самый конец перенести - этого не знал. Сработало, спасибо! А если файл имеет атрибут "скрытый" или "системный", нужно обязательно указать это через a/:s:h ?
Блин, вот где о таких нюансах можно прочитать?

P.S. Вопрос об удалении скрытого файла снят, нашел как.
Автор: garri671
Дата сообщения: 22.05.2009 10:40
Kardinalli

Цитата:
Почему не могу удалить файл такой строкой:
del \q "%userprofile%"\Local Settings\Application Data\file.txt

файлы удалятся у текущего пользователя, если удалятся, а как что бы у всех пользователей


Автор: Rush
Дата сообщения: 22.05.2009 10:52
Kardinalli

Цитата:
Блин, вот где о таких нюансах можно прочитать?

%WINDIR%\Help\ntcmds.chm

Добавлено:
в шапке есть:
http://forum.ru-board.com/topic.cgi?forum=62&topic=15343&start=0&limit=1&m=1#1
Автор: garri671
Дата сообщения: 22.05.2009 11:17
Rush

Цитата:
Добавлено:
в шапке есть:
http://forum.ru-board.com/topic.cgi?forum=62&topic=15343&start=0&limit=1&m=1#1

ссылка на Пример - получение и обработка списка пользователей - дохлая
Автор: jonnydram
Дата сообщения: 22.05.2009 11:23
Добрый день =) Скажите, а можно ли проверить наличие прав администратора у пользователя через батник? Скажем, в задаче условие..

Если есть права администратора -> запуск файла
Иначе -> запуск другого файла


Или, может быть, не права администратора, а "состоит в группе", либо по именам..
Автор: garri671
Дата сообщения: 22.05.2009 12:02
Ну где же гуру?
Нужно подчистить кеш интернета на сервере у пользователей в папке c:\Document an..\пользователь\Local Set..\Temporary Internet..\ или уменьшить объем кеша для всех пользователей. Создал батник но для данного каталога не работает
set P="c:\Documents and Settings\"
set f="Temporary Internet Files"
for /r %P% /d %%b in (%f%) do rmdir /s /q %%b

решение
Taciturn

Цитата:
del /q "%userprofile%\Local Settings\Application Data\file.txt"

не проходит, применимо для текущего пользователя, необходимо для всех
Заранее благодарен
Автор: HaK1R
Дата сообщения: 22.05.2009 12:08
garri671

Цитата:
Всем привет!
Нужно подчистить кеш интернета на сервере у пользователей в папке c:\Document an..\пользователь\Local Set..\Temporary Internet..\ или уменьшить объем кеша для всех пользователей. Создал батник но для данного каталога не работает
set P="c:\Documents and Settings\"
set f="Temporary Internet Files"
for /r %P% /d %%b in (%f%) do rmdir /s /q %%b
Может есть другое решение, подскажите. Спасибо



Код: @echo off
pushd "%SystemDrive%\DOCUME~1\"
for /f "tokens=*" %%a in ('dir /b /ad') do (
if exist "%%~a\LOCALS~1\Temporary Internet Files\" (rmdir /s /q "%%~a\LOCALS~1\Temporary Internet Files\")
)
popd
pause
Автор: garri671
Дата сообщения: 22.05.2009 12:48
HaK1R
Из написанного удаляется вся папка Temporary Internet Files со всем содержимым?
Я прав?
Автор: HaK1R
Дата сообщения: 22.05.2009 13:19
garri671
да

Добавлено:
garri671
Лучше так сделай, удаляет все файлы, в отличии от предыдущего варианта

Код: @echo off
pushd "%SystemDrive%\DOCUME~1\"
for /f "tokens=*" %%a in ('dir /b /ad') do (
if exist "%%~a\LOCALS~1\Temporary Internet Files\" (
pushd "%%~a\LOCALS~1\Temporary Internet Files\"
del /f /s /q /asrha *
rmdir /s /q . 2>nul
popd
)
)
popd
Автор: tatuchipapa
Дата сообщения: 22.05.2009 13:48
Разными путями пробовал этот код, не хочет зходить через телнет.

Код: @echo off
:loop
ping ya.ru | find "TTL=" 1>nul 2>&1
if errorlevel 1 (
telnet 192.168.0.103 /Rebt
telnet 192.168.0.103 admin root
)
ping -n 61 localhost 1>nul 2>&1
goto :loop
Автор: HaK1R
Дата сообщения: 22.05.2009 14:04
tatuchipapa

Цитата:
командная строка вида:

"c:\Program Files\Opera\opera.exe" http://192.168.0.103 admin root и последовательность кнопок reset , reboot the devise, ок.

это как?
Автор: tatuchipapa
Дата сообщения: 22.05.2009 14:14
Через телнет не заходит. Но есть управление точки и через браузер.

Просто через ком. строку "D:\Program Files\Opera\opera.exe" http://192.168.0.103 работает, открывает стартовую. Но логин пароль надо вбивать вручную. Нужно добавить какието параметры чтоб через командную строку срабатывал ребут точки доступа. Если через командную строку сработает, потом уже опять играться с батником.
Автор: vmix
Дата сообщения: 22.05.2009 16:00
В ком. строке сконвертировать bin2ascii hex2ascii - чем проще и лучше ?

Спасибо.
Автор: Kardinalli
Дата сообщения: 22.05.2009 22:39
Как убить процесс понятно. А вот как убить апплет? При этом не убить rundll32, на котором еще может что-то висеть? Например, как принудительно закрыть окно апплета "Установка и удаление программ" appwiz.cpl ?
Автор: 01MDM
Дата сообщения: 23.05.2009 13:19
Kardinalli
Стандартно не знаю, а по другому nircmd в помощь

Код:
nircmdc win close ititle "Установка и"
Автор: tatuchipapa
Дата сообщения: 23.05.2009 13:54
Написал скрипт rebt.vbs

Цитата:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 100
WshShell.SendKeys "telnet 192.168.0.103{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "admin{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "root{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "Rebt{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 10000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "exit{ENTER}"


Подскажите куда этот rebt.vbs вместо телнета вставить?


Цитата:
@echo on
:loop
ping ya.ru | find "TTL=" 1>nul 2>&1
if errorlevel 1 (
telnet 192.168.0.103
)
ping -n 61 localhost 1>nul 2>&1
goto :loop


Да! И что обозначает параметр -n 61 ?
Жду помощи, спасибо!
Автор: Kardinalli
Дата сообщения: 23.05.2009 16:46
01MDM
Спасибо, очень любопытная утилита! Возьму на заметку, наверняка пригодится. В данном случае получается привязка к заголовку окна, то есть, стоит изменить язык и будут проблемы. Хотя, в принципе можно узнать используемую страницу, а затем запустить соответствующий вариант, но это на крайний случай...
Подожду, может кто-то предложит нечто, на базе инструментов самой оси.
Автор: noobofthenoobs
Дата сообщения: 23.05.2009 17:11
Подскажите как написать батник, прописывающий приложение по умолчанию для некоторого типа файлов? Или это ближе к wsh скриптам?
Автор: yurkesha
Дата сообщения: 23.05.2009 17:16
noobofthenoobs
FTYPE /? - стандартная виндовая консольная утилита
Автор: HaK1R
Дата сообщения: 23.05.2009 22:16
tatuchipapa

Цитата:
Подскажите куда этот rebt.vbs вместо телнета вставить?

не совсем понял вопроса, по моему на вопрос "куда" отвечает "вместо"

Цитата:
а! И что обозначает параметр -n 61

задержка в секундах плюс один, т.е. здесь 60 секунд
Автор: tatuchipapa
Дата сообщения: 23.05.2009 23:01

Цитата:
не совсем понял вопроса, по моему на вопрос "куда" отвечает "вместо"

Нужно чтобы вместо выполнения команды обращения к телнету, бат файл выполнил команду обращения к скрипту rebt.vbs . Если просто прописать вместо telnet rebt.vbs батник не срабатывает. Поэтому и такой вопрос. Я с батниками и скриптами только вторые сутки прошу извинить, отсюда могу путаться в терминологии и понятиях.
rebt.vbs сегодня написал впервые, работает нормально.

Созревшие вопросы!

Если скомпилировать *.bat в *.exe, можно ли запустить этот *.exe как службу в WinXP?

Имеет ли смысл менять ping ya.ru на ping r0.ru, если среднее значение пинга для ya.ru 984mc, для r0.ru 125мс?
Автор: HaK1R
Дата сообщения: 23.05.2009 23:10
tatuchipapa

Код: @echo off
:loop
ping ya.ru | find "TTL=" 1>nul 2>&1
if errorlevel 1 (
wscript.exe "rebt.vbs"
)
ping -n 61 localhost 1>nul 2>&1
goto :loop
Автор: tatuchipapa
Дата сообщения: 23.05.2009 23:26
Вроде бы получилось. HaK1R спасибо за поддержку! Теперь попробую полностью сам написать батник для ребута удалённо роутера за точками доступа.
Ещё раз огромное спасибо! Неделю парился возле компа мышкой ребутить точку.

Автор: dmik
Дата сообщения: 24.05.2009 00:14

Цитата:
ping -n 61 localhost 1>nul 2>&1

а не подойдет что ли

Цитата:
waitfor anything /T 60
Автор: HaK1R
Дата сообщения: 24.05.2009 10:15
dmik

Цитата:
Цитата:
ping -n 61 localhost 1>nul 2>&1

а не подойдет что ли

Цитата:
waitfor anything /T 60

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

Первый пример универсален, поскольку ping.exe есть на во всех сборках, а что касается waitfor то у меня нет такого утилита, думаю что не только у меня, а значит с батником тебе еще надо таскать сторонние утилиты, что не удобно.
Также для этих целей есть утилит sleep.exe


Добавлено:
tatuchipapa

Цитата:
Если скомпилировать *.bat в *.exe, можно ли запустить этот *.exe как службу в WinXP?

А почему нет? Думаю можно

Цитата:
Имеет ли смысл менять ping ya.ru на ping r0.ru, если среднее значение пинга для ya.ru 984mc, для r0.ru 125мс?

Команда пинг проверяет соединение с инетом, и если пинг есть на r0.ru то есть и на ya.ru, так что не вижу смысла в этом. Единственное что это изменит это то что команда запроса на r0.ru будет выполняться быстрее чем на ya.ru, но как сказал программа будет работать по прежнему правильно.
Автор: dmik
Дата сообщения: 24.05.2009 11:56
HaK1R
waitfor в штатной комплектации появилась на 2003 и vista, для более старых ОС надо качать.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: как сохранить сетевые настройки


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