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

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

Автор: mugil_cephalus
Дата сообщения: 15.05.2010 08:59
Mark_Titov

Цитата:
/s компьютер
Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту).

вот чего в хелпе написали
Автор: Mark_Titov
Дата сообщения: 15.05.2010 09:14

Цитата:
Если будешь просто запускать скрипт, то он будет выполняться для локальной машигы, если будешь указывать в качестве параметра имя машины, то скрипт будет выполняться для нее.

...спасибо парни, но мне нужно это в самом батнике прописать, без скрипта если можно, пока чего-то не получается для удаленной машины сделать. (
Автор: mugil_cephalus
Дата сообщения: 15.05.2010 09:44
Unitaz
reg /?
shutdown /?

Добавлено:
Mark_Titov
если у тебя %1 в коде раскрывается в \\comp то пропиши в коде
set "rmtpc=%~1"
set "rmtpc=%rmtpc:\\=%"
Автор: Mark_Titov
Дата сообщения: 15.05.2010 12:23
mugil_cephalus
...вот так все работает -

Код: @echo off
setlocal enabledelayedexpansion
set /a cnt=0
set pr=
for /f "tokens=1,2,3 delims=: " %%a in ('tasklist -s \\comp_name ^| findstr 00-80 ^| findstr /n 00-80') do echo %%a %%b %%c & set pr=!pr!,%%c
set pr=!pr:~1!
echo.
echo Enter number of prosess:
set /p kill=
for /d %%t in (!pr!) do set /a cnt+=1 & if !cnt!==%kill% echo taskkill /s %1 /pid %%t
Автор: wolf0425
Дата сообщения: 15.05.2010 13:00

Цитата:
...а вот так (с переменными) почему-то не хочет -
tasklist %server%

а не хочет потому что ты не сделал tasklist /? переl тем как на форум писать
Автор: mugil_cephalus
Дата сообщения: 15.05.2010 13:03
Mark_Titov

Цитата:
set sever=\\comp_name

исправь на server
Автор: Mark_Titov
Дата сообщения: 15.05.2010 13:50

Цитата:
исправь на server

...))) да, спешил, но прописывал правильно.
Спасибо за поправку...


Цитата:
а не хочет потому что ты не сделал tasklist /? переl тем как на форум писать

wolf0425
...ты прав, мелочь - но важная -

Код: @echo off
echo.
setlocal enabledelayedexpansion
set server=\\comp_name
set /a cnt=0
set pr=
for /f "tokens=1,2,3 delims=: " %%a in ('tasklist -s %server% ^| findstr 00-80 ^| findstr /n 00-80') do echo %%a %%b %%c & set pr=!pr!,%%c
set pr=!pr:~1!
echo.
echo Enter number of prosess:
set /p kill=
for /d %%t in (!pr!) do set /a cnt+=1 & if !cnt!==%kill% echo taskkill /s %1 /pid %%t
Автор: vaddy3
Дата сообщения: 15.05.2010 14:45
Помогите пожалуйста какой путь прописать. Хочу в процессе установки виндоус сразу же закинуть и мои темы для рабочего стола на системный диск. Один вариант я уже делал, когда темы были предустановлены я их загрузил разместив на инсталяционном диске вот в таком каталоге \$OEM$\$$\RESOURCES\THEMES и тогда после установки они у меня повлялись в винде вот здесь C:\Windows\Resources\Themes . Теперь мне необходимо закинуть темы вот сюда в винде C:\Users\Администратор\AppData\Local\Microsoft\Windows\Themes . Как будет выглядеть путь для файлов на инсталяционном диске для этого случая ?
Автор: wolf0425
Дата сообщения: 15.05.2010 16:58

Цитата:
А можно из показываемого списка убрать расширения ".exe"?
а что - бывают другие?

Цитата:
И как все таки сделать что бы курсор мигал не ПОД надписью "Enter number of prosess:", а в конце нее как обычно?

echo.
set /p kill="Enter number of prosess: "
Автор: Joo1z
Дата сообщения: 15.05.2010 17:24

Цитата:
А можно из показываемого списка убрать расширения ".exe"?

Добавь в разделители (delims) точку и рассматривай tokens=1,2,4
Автор: Mark_Titov
Дата сообщения: 15.05.2010 17:41

Цитата:
echo.
set /p kill="Enter number of prosess: "

...спасибо wolf0425, помогло.

Цитата:
а что - бывают другие?

...))) нет, я знаю, просто эти процессы ровно как и сервисы как ты знаешь у меня объекты, поэтому хотелось бы именно в отображении убрать exe...


Цитата:
Добавь в разделители (delims) точку и рассматривай tokens=1,2,4

...где именно? (извиняюсь но с кодом еще не знаком так как вы все).

Спасибо...
Автор: Joo1z
Дата сообщения: 15.05.2010 18:20
Mark_Titov

Цитата:
извиняюсь но с кодом еще не знаком так как вы все

Весь код 10 строчек. Открываешь в редакторе, жмешь Ctrl+F вводишь tokens и жмешь Enter. Тебе подсвечивают единственную строчку, где это слово есть. Если быль очень внимательным, то можно сразу за этим tokens обнаружить и вожделенный delims. Ура, это то что нужно! Остается только исправить
Код: for /f "tokens=1,2,3 delims=: "
Автор: wolf0425
Дата сообщения: 15.05.2010 19:04
Mark_Titov
Цитата:
хотелось бы именно в отображении убрать exe...
do echo %%~na %%b %%c & set pr=!pr!,%%c
так что-ли? когда же ты хелп прочитаешь на for

Автор: Mark_Titov
Дата сообщения: 15.05.2010 19:09

Цитата:
Ура, это то что нужно!

...спасибо, не пинайте, я только учусь.

Добавлено:
...а кто скажет почему не льзя указать ip в место имени компа в качестве переменной сервера?


Код: set server=\\192.143.168.100
tracert %server% >log.txt 2>>&1
Автор: Svrale
Дата сообщения: 15.05.2010 20:14
Помогите пожалуйста со скриптом, есть файлы резервных копий (*.dmp *.stat *.log) и список backup.list в таком формате

Код:
20100507 bp_07-05-2010.*
20100508 bp_08-05-2010.*
20100509 bp_09-05-2010.*
20100510 bp_10-05-2010.*
20100429 bp_29-04-2010.*
20100430 bp_30-04-2010.*
Автор: wolf0425
Дата сообщения: 15.05.2010 20:54

Цитата:
...а кто скажет почему не льзя указать ip в место имени компа в качестве переменной сервера?
почему нельзя - можно

Цитата:
...хотя машина в сети и пингуется!
наверно же ты пингуешь без \\ в имени хоста, непонятно зачем в трейс \\ влепил


Добавлено:
Svrale
Цитата:
Что сделать, что бы копировался только последний файл?

надо сделать чтоб 1. всегда копировался последний файл или 2. чтоб когда последний файл уже скопирован - ничего не копировалось?

1. do xcopy /F /Z /Y %%i z:\backup\ & goto :skip
2. do echo n|xcopy /F /Z /-Y %%i z:\backup\ & goto :skip
Автор: Svrale
Дата сообщения: 15.05.2010 21:14
wolf0425
echo n|xcopy /F /Z /-Y %%i z:\backup\ & goto :skip
вот же вредная привычка - машинально поставил &&
Спасибо.
Автор: Mark_Titov
Дата сообщения: 15.05.2010 22:02

Цитата:
ip адрес не содержит "\\"


Цитата:
наверно же ты пингуешь без \\ в имени хоста, непонятно зачем в трейс \\ влепил


...а, понял, спасибо, а я по привычке их ставлю.

Еще вопрос-
Есть tracert


Код: @echo off
mode con lines=50 cols=145
set server=192.143.168.100
tracert %server% >log.txt 2>>&1
Автор: mugil_cephalus
Дата сообщения: 16.05.2010 08:57
wolf0425

Цитата:
когда же ты хелп прочитаешь на for

а ты его запости здесь...
Автор: wolf0425
Дата сообщения: 16.05.2010 09:26
mugil_cephalus
Цитата:
а ты его запости здесь...
думаешь поможет?
Автор: mugil_cephalus
Дата сообщения: 16.05.2010 10:02
wolf0425

Цитата:
думаешь поможет?

надежда умирает последней
Автор: lorents
Дата сообщения: 16.05.2010 18:33
Добрый день! помогите пожалуйста решить следующую задачу:

Допустим у меня есть ссылка
http://s3.envato.com/files/329625/index.html
При просмотре данной flash через Internet Explorer в папке Temporary Internet Files создаются файлы с путями например
http://s3.envato.com/files/329625/index.html
http://s3.envato.com/files/329625/preview.swf
http://s3.envato.com/files/329625/css/book_styles.css
и т.д
Подскажите как сделать чтобы файлы, имеющие путь http://s3.envato.com/files/329625 копировались в определенную папку, например C:\ и имели следующие пути
C:\329625\index.html
C:\329625\preview.swf
C:\329625\css\book_styles.css
и т.д
Автор: digital422
Дата сообщения: 16.05.2010 20:24
Есть задача под Win-следить за txt файлом и если он в течении 30 минут не изменился то очищать его содержимое и вбивать в него 3 пустых строки или переименовать его из лежащего рядом шаблона (пустой файл с 3-мя строками).
Автор: Joo1z
Дата сообщения: 16.05.2010 20:40

Цитата:
он в течении 30 минут не изменился

Проверять каждые 10 секунд в течении получаса или раз в пол-часа?

Цитата:
очищать его содержимое

тупо удалять,а на его месте создавать новый?
А может тупо следить за изменением размера файла?
Автор: digital422
Дата сообщения: 16.05.2010 21:10
Проверять 2 раза в течении часа (планировщиком), если по результатам 2 проверки файл изменился (можно и по размеру), то ничего не делать, если не изменился, то можно удалить, а на его место создать такой же+добавить 3 строчки.
Автор: mugil_cephalus
Дата сообщения: 17.05.2010 10:23
digital422

Код: @echo off
set "filename=G:\scripts\TEST\filename.txt"
if /i "_%~1" equ "_szchk" goto:szchk
if exist %SystemRoot%\tasks\szcomp.job (
schtasks /delete /tn szcomp /f>nul
) else (
schtasks /create /ru *** /rp *** /sc minute /mo 30 /tn szcomp /tr "G:\scripts\TEST\szcomp.bat szchk">nul
)
1>"%temp%\rnd.cnt" echo.0
rem pause
goto:eof

:szchk
set /p cnt=<"%temp%\rnd.cnt"
set /a cnt+=1
if /i "_%cnt%" neq "_2" (0>nul 1>"%temp%\rnd.cnt" set /p="%cnt%" &exit)

for /f "tokens=*" %%i in ('dir /b/a-d %filename%') do (
1>nul 2>&1 echo."%%~i"
if /i "_%%~zi" equ "_3" (
1>>%filename% (echo.&echo.&echo.)
))
schtasks /delete /tn szcomp /f>nul
set "filename="
set "cnt="
del /q /a: "%temp%\rnd.cnt">nul
rem pause
goto:eof
Автор: AnGo
Дата сообщения: 17.05.2010 14:51
Hi,All!
Возникла вот такая задача.
Имеется несколько бат-файлов. Один бат-файл их объединяет.
кусочек кода следующий:

...
rem Создаем архивы
call archiv_answer_for_ftn200.bat
rem
echo.
echo Копируем архив куда надо
sort_files_adm_CO.exe.exe
....

Проблема заключается в том, что архивы в батнике archiv_.... не успевают создаться до того как прога sort_files... пытается их скопировать и естественно обламывается..

Необходимо не выходит из батника archiv_... пока не создались архивы.
В нем если просто написать:

%PATH_TO_RAR% a -ep -ag %PATH_DEST%\log %PATH_SOURCE%\log*.txt

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

Пробовал прописать:

start /W %PATH_TO_RAR% a -ep -ag %PATH_DEST%\log %PATH_SOURCE%\log*.txt

жалуется, что виндоуз не может найти файл "а", т.е. ключ принимает за файл.
Как правильно написать этот кусок кода?
Thx!

PS.
set "PATH_TO_RAR="C:\Program Files\WinRAR\winrar.exe""
set "PATH_DEST=E:\AutomatUpdate\ftnAdmin200"
set "PATH_SOURCE=E:\logist\baseDirForLogFiles"


Автор: Joo1z
Дата сообщения: 17.05.2010 15:08
AnGo
Можешь tasklist'ом отслеживать наличие процесса winrar.exe и до тех пор пока он есть не выполнять дальнейших действий.
Автор: AnGo
Дата сообщения: 17.05.2010 16:27
Joo1z

Цитата:
Можешь tasklist'ом отслеживать наличие процесса winrar.exe и до тех пор пока он есть не выполнять дальнейших действий.

Что-то сложновато получается.
Имхо, должен быть путь проще...


Добавлено:
Joo1z
Автор: Joo1z
Дата сообщения: 17.05.2010 16:44
AnGo
Должно быть проще.
Я даже для проверки winrar поставил. У меня все нормуль: пока не заархивирует дальше не идет, что с call что без него.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

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


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