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

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

Автор: SANIOK_AV
Дата сообщения: 13.11.2009 11:39
Доброго времени суток!
Такой вопрос:
Запускаю пакетный файл 1.bat с правами пользователя admin:

Код: SCHTASKS /CREATE /RU admin /RP 123456 /SC once /TN zadanie /TR d:\1.bat /ST 00:00:00
SCHTASKS /RUN /TN zadanie
Автор: wolf0425
Дата сообщения: 13.11.2009 11:54

Цитата:
по существу, а не по "регламенту" :
а как я проверю , что в tempInetFilesDirList я получил ПОЛНЫЙ перечень
пересчитать строки и сравнить с тем что пишет эксплорер в свойствах каталога?
Автор: mugil_cephalus
Дата сообщения: 13.11.2009 12:04
SANIOK_AV


Цитата:
в команде SCHTASKS /RUN есть ключи /S система и /U пользователь (ключ /U пользователь без ключа /S система не работает) можно ли в этих ключах указать универсально локальную систему и пользователя?

в этих - нет, для лок.сис - запуск без этих ключей запустит job от имени текущего залогинненого пользователя

можешь попробовать (не знаю получится ли) клюи /ru и /rp

Добавлено:
wolf0425

Цитата:
пересчитать строки и сравнить с тем что пишет эксплорер в свойствах каталога?

так это ж спецпапки - explorer отображает их иначе, чем в реальности (far'om например)
например в tasks он не отображает SchedLgU.Txt, sa.dat , а папку history explorer и far показывают по-разному и не отображает explorer в tempinet - AntiPhishing, content.ie5 (+много subfolders с файлами, у которых совпадают имена (например index.html)), content.word, WebTempDir etc
tempinetfiles отображает и файлы из %USERPROFILE%\Cookies
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 12:23
mugil_cephalus
что за job?
Автор: mugil_cephalus
Дата сообщения: 13.11.2009 12:32
SANIOK_AV
в папке WINDOWS\Tasks задания - это файлы *.job (посмотри far'om например)
Автор: savvato
Дата сообщения: 13.11.2009 12:50
Добрый день уважаемые форумчане, извините что пишу может быть не в той теме. Как скопировать файлы с заменой в ситемные папки Windows. Конкретно интересует папка %WINDIR%/ehome в Windows . Как я понимаю надо забрать у system права на Администратора. Делал с помощью cacls и subinacl не помогает ... В безопасном режиме все ок копируеться ,но задача сделать это в обычном режиме при первом запуске с помощью батника. Ось Windows XP PRO rus с интегрированным eng медиацентром .В %WINDIR%/ehome хочу закинуть локализированые файлы для Медиацентра.
Автор: NIKZZZZ
Дата сообщения: 13.11.2009 13:02
savvato

Цитата:
Делал с помощью cacls и subinacl не помогает

Может попробовать UnLocker? Портабле-версию для работы из ком. строки я выкладывал здесь.

Автор: savvato
Дата сообщения: 13.11.2009 13:07
пробовал не помагает, при копировании ошибка: Не возможно выполнить операцию с открытой пользователем сопоставленной секцией.
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 14:53
mugil_cephalus

Цитата:
в папке WINDOWS\Tasks задания - это файлы *.job (посмотри far'om например)

ну а как запустить эти файлы *.job ?
Автор: mugil_cephalus
Дата сообщения: 13.11.2009 18:41
wolf0425
я писал
Цитата:
Добавлено:
wolf0425

Цитата:for /f "delims=" %%A in ('dir /b /a-d C:\test\*.txt') do call:_1 %%A

а почему можно использовать семантику /a-d , а не /a:-d ?
DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]]

мне king_stiven дал развернутый ответ
Цитата:
mugil_cephalus
/a [[:] атрибуты]
Выводит имена только тех файлов и каталогов, которые имеют указанные атрибуты. Если параметр /a не указан, команда dir выводит имена всех файлов, за исключением системных и скрытых. Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные. Ниже приведен список значений, которые могут быть использованы при задании параметра атрибуты. Двоеточие (: ) является необязательным.
и я решил восользоваться случаем
Цитата:
king_stiven

Цитата:Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные.

то есть, если /a без атрибутов, то получу все-все файлы? и файлы, и папки (directories), и hide, и sys, и read, и archive, и без атрибутов? то есть таким способом (меня давно этот вопрос интересовал, просто пока не задавал его на форуме) можно вывести АБСОЛЮТНО весь list каталога, даже то, чего explorer иначе показывает (list of temporary inet files, например)?


поэтому у меня к тебе вопрос (еще раз воспользуюсь случаем ) - мне нужен код, который бы выводил список ВСЕГО-ВСЕГО, что есть в каталоге "N": и файлы, и папки (directories), и hide-файлы, и sys-файлы, и read-файлы, и archive-файлы, и без атрибутов-файлы, и hide-каталоги, и sys-каталоги, и read-каталоги, и archive-каталоги, и без атрибутов-каталоги, и с крякозябрами в именах, и с учетом, что в каталоге "N" могут быть файлы с нэймингом на латинице и кириллице, и чтоб при ошибке (допустим длинное имя) - не останавливался, а писал: "error" и продолжал работать (как на VBS: On Error Resume Next), и при этом был насколько возможно коротким, - чтоб его можно было использовать внутри скриптовых конструкциий, например, for. И при всем при этом я не могу его сам составлять, т.к. методом тестирования - не подходит, мне нужна 100%-ная уверенность (естественно, относительно) в его отработке - что он не пропускает наличиствующие субдиректории/файлы - потому что могут со временем обнаружиться "подводные камни" (если я стал бы действовать по методе самостоятельных проб и ошибок), - как сегодня-вчера в ситуации с "пустой" строкой / CRLF.

Добавлено:
SANIOK_AV

Цитата:
ну а как запустить эти файлы *.job ?

а чем SCHTASKS не подходит?
в чем конкретно проблема?
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 19:42

Цитата:
в чем конкретно проблема?

ну говорю же:
Запускаю пакетный файл 1.bat с правами пользователя admin
(система загружена под другим пользователем):

Код: SCHTASKS /CREATE /RU admin /RP 123456 /SC once /TN zadanie /TR d:\1.bat /ST 00:00:00
SCHTASKS /RUN /TN zadanie
Автор: king_stiven
Дата сообщения: 13.11.2009 20:28
mugil_cephalus
Иди в Справка и поддержка - Справочник по параметрам командной строки - там ответы по всем командам.
Автор: mugil_cephalus
Дата сообщения: 13.11.2009 20:41
SANIOK_AV


Цитата:
я не вижу в данном случае cmd-шное окно пакетного файла 1.bat (видимо потому что это задание выполняется под пользователем admin)
- все так - окно не увидишь, хотя задание и будет запускаться


Добавлено:
king_stiven

Цитата:
Иди в Справка и поддержка - Справочник по параметрам командной строки - там ответы по всем командам.


Цитата:
И при всем при этом я не могу его сам составлять, т.к. методом тестирования - не подходит, мне нужна 100%-ная уверенность (естественно, относительно) в его отработке - что он не пропускает наличиствующие субдиректории/файлы - потому что могут со временем обнаружиться "подводные камни" (если я стал бы действовать по методе самостоятельных проб и ошибок), - как сегодня-вчера в ситуации с "пустой" строкой / CRLF.

Автор: SANIOK_AV
Дата сообщения: 13.11.2009 21:10

Цитата:
- все так - окно не увидишь, хотя задание и будет запускаться

ну а что сделать чтоб увидеть?))
Автор: mugil_cephalus
Дата сообщения: 13.11.2009 21:24
SANIOK_AV

Цитата:
ну а что сделать чтоб увидеть?))


насколько знаю, это невозможно
многие специально делают такую схему для скрытия окна
только SCHTASKS /CREATE /RU currentuser
а для какой цели тебе нужно видеть окно? ведь задание запускается/отрабатывает и можно посмотреть log отработки задания - перенаправлением output 1.bat в log
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 21:47
mugil_cephalus

Цитата:
а для какой цели тебе нужно видеть окно?

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

Цитата:
можно посмотреть log отработки задания - перенаправлением output 1.bat в log

Спасибо...это неплохая идея!
только вот если:
1) придумаю как автоматизацию нажатия этих кнопок))
2) придумаю как отследить что задание уже выполнилось

Автор: mugil_cephalus
Дата сообщения: 13.11.2009 22:10
SANIOK_AV

Цитата:
1) придумаю как автоматизацию нажатия этих кнопок))

cmd это не может, - только autoIt
напиши в 1.bat строку - runas от имени currentuser другого батника, например - 2.bat - пусть он [2.bat] просит нажатия клавиш и передает результат в 1.bat, который ожидает результатов и после этого продолжает работу

Цитата:
2) придумаю как отследить что задание уже выполнилось

SCHTASKS /Query /v или в конце 1.bat - какую-то комманду, которая будет для тебя меткой или EVENTTRIGGERS /Create

почитай Уильям Станек - Командная строка Microsoft Windows - http://rapidshare.com/files/89629093/Stanek_CLI_MS_Win.rar
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 22:46
mugil_cephalus

Цитата:
cmd это не может, - только autoIt

а vbs?

Цитата:
SCHTASKS /Query /v или в конце 1.bat - какую-то комманду, которая будет для тебя меткой или EVENTTRIGGERS /Create

если что буду пробовать...Спасибо!

Цитата:
почитай Уильям Станек - Командная строка Microsoft Windows - http://rapidshare.com/files/89629093/Stanek_CLI_MS_Win.rar

ок...Спасибо...

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


Автор: mugil_cephalus
Дата сообщения: 13.11.2009 22:59
SANIOK_AV

Цитата:
а vbs?

насколько знаю и VBS и JS, в общем на WSH я такого не встречал
про powershell - не знаю
есть хороший сайт - посмотри - может что найдешь http://www.robvanderwoude.com/index.html

вот еще посмотри от NIKZZZZ - http://forum.ru-board.com:9000/topic.cgi?forum=62&topic=17154&start=85&limit=1&m=1


Цитата:
BAu3.exe

Существует довольно много сонсольных утилит, например CLCC, gsar,hstart, msgbox, nircmd и т.п. , в большинстве случаев BAu3.exe их может заменить.

BAu3.exe - Консольная утилита, позволяющая выполнить одну строку скрипта, написанного на Autoit с полной передачей данных в .bat файл.
Можно, конечно , написать скрипт на самом Autoit, но это не всегда проще.


и еще Программирование "удобняшек" на VBScript http://forum.ru-board.com/topic.cgi?forum=33&topic=1491&start=0
Автор: Ortios
Дата сообщения: 13.11.2009 23:43
mugil_cephalus


Цитата:
echo off
for %%A in (C:\test\*.txt) do call:_1 %%A
goto :eof

:_1
for /f "tokens=*" %%i in ('type %1') do 0>nul 1>C:\test\%~n1.txt set /p="%%i" && del /q %1 && ren C:\test\%~n1_.txt %~nx1
goto :eof

А чего твое решение задачи об удалении пустой строки для soft111 без конца порождает файлы, например, оставляю в каталоге C:\test\1.txt один файл и батник порождает еще 231 файл (1_.txt,1__.txt,1___.txt...) , в которых, впрочем, верное решение с первой строчкой из файла 1.txt? Странно что soft111 остался доволен этим решением.
Этим же глюком страдает и решение второй задачи для soft111
Или может это глюки у меня, тогда просьба подсказать где?
Автор: SANIOK_AV
Дата сообщения: 13.11.2009 23:52

Цитата:
вот еще посмотри от NIKZZZZ - http://forum.ru-board.com:9000/topic.cgi?forum=62&topic=17154&start=85&limit=1&m=1

Класс!
Будем знать!

Цитата:
Можно, конечно , написать скрипт на самом Autoit, но это не всегда проще.

С одной стороны согласен...тем более что в Autoit я полный ноль...))
Но с другой стороны я встречал решение по поводу запуска программы от имени другого пользователя:

Код: ; Set the RunAs parameters to use local adminstrator account
RunAsSet("Администратор", @Computername, "adminpassword")
; Run registry editor as admin
RunWait("regedit.exe")
; Reset user's permissions
RunAsSet()
Автор: mugil_cephalus
Дата сообщения: 14.11.2009 10:07
Ortios
ну если ты точно убрал все пробелы из кода, то:
1) я весь скрипт не тестировал - только отдельные коды, но у меня тоже один раз был глюк - http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1400 -
- soft111 писал:
Цитата:
я код программы не изменяю, оставляю как есть и пути тоже сохраняются C:\test

В текстовом файле написано:


Цитата:slovo



После отрабатывания батника, он добавляет еще к slovo пробел.

вот какой у меня был глюк -
Цитата:
сделал себе такое же - строку не убрал, зато "нарисовал" еще 130 пробелов

, а потом все нормально работало
2) я еще не уверен в отработке скриптом вот этого:
Цитата:
wolf0425
подскажи, пожалста, в этом коде:
echo on
for %%A in (C:\test\*.txt) do call:_1 %%A
goto :eof

:_1
for /f "tokens=*" %%i in ('type %1') do (echo %%i>C:\test\%~n1_.txt && del /q %1 && ren C:\test\%~n1_.txt %~nx1)
goto :eof

при старте первого цикла формируется виртуальный/эмулированный пул ВСЕХ итераторов (то есть виртуальный list всех *.txt) ? или нет и тогда "созданный" во втором цикле
лексемой - ren C:\test\%~n1_.txt %~nx1 - *.txt-файл попадет в первый цикл?

3) вообще нужно видеть листинг, как скрипт у тебя отрабатывает, иначе не поймешь что ему не нравиться
4) попробуй вот так
echo off
for %%A in (C:\test\*.txt) do call:_1 %%A
goto :eof

:_1
for /f "tokens=*" %%i in ('type %1') do 0>nul 1>C:\test\%~n1 set /p="%%i"
goto :eof



- и если у тебя один файл
Цитата:
например, оставляю в каталоге C:\test\1.txt один файл
и этот код тоже глюкнет, то скорее всего глюк у тебя - напиши echo on и показывай листинг


Добавлено:
SANIOK_AV

Цитата:
тем более что в Autoit я полный ноль...))

как и я...
Автор: Ortios
Дата сообщения: 14.11.2009 11:31
mugil_cephalus

Цитата:
я весь скрипт не тестировал - только отдельные коды

Интересный подход.
Ну так вот, в твоем коде не работает фрагмент

Цитата:
for /f "tokens=*" %%i in ('type %1') do 0>nul 1>C:\test\%~n1.txt set /p="%%i" && del /q %1 && ren C:\test\%~n1_.txt %~nx1


Вот код который работает:

Код: echo off
for %%A in (C:\test\*.txt) do call:_1 %%A
goto :eof

:_1
for /f "tokens=*" %%i in ('type %1') do 0>nul 1>C:\test\%~n1.txt set /p="%%i" & del /q %1 && ren C:\test\%~n1_.txt %~nx1
goto :eof
Автор: mugil_cephalus
Дата сообщения: 14.11.2009 12:11
Ortios
не знаю, я не тестировал скрипт, если бы у soft111 не работал бы этот участок кода - тогда бы я стал искать в ошибку в этом участке


Добавлено:
Ortios
если не работает первый вариант - можно и вариант с одним амперсандом
Автор: Ortios
Дата сообщения: 14.11.2009 12:36
mugil_cephalus
Извиняюсь за флуд, вот это я и хотел выяснить, с какого перепугу должен работать первый вариант с двумя амперсандами.
И вообще, как раньше говорили старые механики, механизм должен работать не в принципе, а в кожухе.
Автор: mugil_cephalus
Дата сообщения: 14.11.2009 13:12
Ortios

Цитата:
И вообще, как раньше говорили старые механики, механизм должен работать не в принципе, а в кожухе.

так кто же против вопиет? кому надо, тот пусть и кожух надевает. будет надо мне - надену. я даже не против иногда помимо удочки и порыбачить за кого-то, но только иногда и из сердобольности, но сермяга в том, что кожух у всех разный и на свой горб не напялишь чужой шагрени, будь хоть трижды филантроп
Автор: batniki
Дата сообщения: 14.11.2009 18:59
Помогите пожалуйста с батником, нужно пробежаться с указанного начального каталога по подкаталогам, удаляя из них файлы с расширениями *.@@@,*.bla, *.sdx.
Автор: king_stiven
Дата сообщения: 14.11.2009 20:48
batniki
for %%i in (*.@@@ *.bla *.sdx) do del /s /f /q "%%i"
Автор: alexcoolmagic
Дата сообщения: 15.11.2009 09:29
можно ли в батнике получить в переменную содержимое клипбоарда (как по ctrl+v)?
Автор: king_stiven
Дата сообщения: 15.11.2009 10:23
alexcoolmagic
С помощью nircmdc.exe (в шапке) можно добавить клипбоард в файл и взять переманную из файла.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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