Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: vitrzn
Дата сообщения: 29.09.2009 13:46
01MDM

я вот с этой совладал forfiles.exe (5.2.3790.0)
Автор: Kilyan
Дата сообщения: 29.09.2009 16:09
Помогите решить делему!
У самого либо руки кривые либо уровень не тот.


Код: start program.exe
:start

бла бла

goto start
Exit
Автор: bomzzz
Дата сообщения: 29.09.2009 16:30
и как написанный код должен прибивать батник???
ну убей его killtask. того что написано недостаточно чтоб решить как этот фортель сделать.

Добавлено:
start MyBatnik.bat
call program.exe
killtask /f /im cmd.exe
работать будет но не факт что так как надо

или например через tasklist можно проверять работает ли программа
Автор: Kilyan
Дата сообщения: 29.09.2009 16:36

Код: start "" /b program.exe

:start
бла бла

tasklist | find "program.exe"
if errorlevel 1 goto NoRecord
echo Found
goto Done
:NoRecord
Exit
Echo Not Found
one

goto start
Автор: bomzzz
Дата сообщения: 29.09.2009 16:37
задача не полностью сформулирована. это можно разными способами.
Автор: 01MDM
Дата сообщения: 29.09.2009 16:41
Kilyan

Код:
@echo off
start calc

:start

echo calc

2>nul tasklist /fi "imagename eq calc.exe" /nh | 1>nul findstr /v "fake" || exit /b
:: 1>nul ping -n 2 localhost

goto:start
Автор: bomzzz
Дата сообщения: 29.09.2009 16:46
а че будет если вот так сделать?
killtask /f /im *.*
компьютер перегрузится????

Добавлено:
чета вспомнить не могу как резидентная 16 битная программа делается. жалко в батниках прерываний нет.
Автор: vovanius1
Дата сообщения: 29.09.2009 19:28
Здравствуйте! Подскажите, возможно ли (и как) получить адреса первичного и вторичного DNS-серверов в батнике? Не чтобы вручную:

set primary_dns_server=ххх.ххх.ххх.ххх
set secondary_dns_server=ууу.ууу.ууу.ууу

а чтобы батник сам узнал адреса из сети и потом присвоил эти адреса соответствующим переменным? Спасибо.
Автор: bomzzz
Дата сообщения: 29.09.2009 19:30
чтоб сам узнал из сети наверно нельзя. разве перехватить чужие пакеты попробовать - только батником это врядли получится.

если не нужны локальные адреса можно использовать любой бисплатный днс сервер
Автор: ZDik
Дата сообщения: 29.09.2009 21:17
Подскажите плиз
1) Создать к примеру n папок с названием n, в каждой m файлов с именем m
2) Создать список папок из файла типа:
папка1
папка2
...
папка
Автор: 01MDM
Дата сообщения: 29.09.2009 23:34
vovanius1

Цитата:
Подскажите, возможно ли (и как) получить адреса первичного и вторичного DNS-серверов в батнике?


Один интерфейс? Тогда попробуй так:

Код:
@echo off
setlocal

for /f "tokens=*" %%i in ('netsh diag show dns ^| findstr "[0-9]\.[0-9]"') do call:set %%i
set dns_
goto:eof

:set
set /a cnt+=1
if not "%2"=="" (set dns_%cnt%=%2) else (set dns_%cnt%=%1)
Автор: vovanius1
Дата сообщения: 30.09.2009 00:06
Продолжение по DNS:

Команда nslookup выдает такое:

Default Server: UnKnown
Address: ххх.ххх.ххх.ххх

где ххх.ххх.ххх.ххх является адресом примари ДНС сервера. Можно сделать так, чтоб результат этой команды выдавался не на экран, а в некую переменную, а потом "выкусить" из этой переменной то что после Address:, это и будет искомый айпишник... Геморно, но пока ничего лучше не придумал...

Скрипт постом выше в Висте не пошел
Автор: ZDik
Дата сообщения: 30.09.2009 06:28

Цитата:
Подскажите плиз
1) Создать к примеру n папок с названием n, в каждой m файлов с именем m
2) Создать список папок из файла типа:
папка1
папка2
...
папка

Задача 1) создать n папок, в каждой папке надо созать m файлов 0 длинны, где m - название папки, число от 1 до 200, n - название файла, число от 1 до 800 (те создать 160000 файлов 0 длины)
Задача 2) есть текстовый файл (1.txt) с названиями папок, вида:
папка1
папка2
...
папка
при запуске баника должно создаться нужное количество папок названия которых хранятся в файле 1.txt, или как вариант еще приделать порядковый номер к названию папки
Автор: 01MDM
Дата сообщения: 30.09.2009 09:00
vovanius1

Цитата:
Скрипт постом выше в Висте не пошел


Не понятно зачем в висте и 7-ке убрали контекст diag из netsh. Тогда такой вариант:

Код:
@echo off
setlocal enabledelayedexpansion

set "exec=wmic nicconfig get DNSServerSearchOrder /value"
for /f "tokens=2 delims=={}" %%i in ('%exec% ^| findstr [0-9]') do (
for %%i in (%%i) do (
set /a cnt+=1
set "dns_!cnt!=%%i"
)
)
set dns_
Автор: newhk
Дата сообщения: 30.09.2009 14:10
у меня впрос, я не силен в переменных, посему не догоняю, как сделать, чтобы батник ожидал ответа от пользователя, ну например на заверщение процесса по его PID, поскольку он все время разный (первое что пришло в голову.... знаю, что можно завершить по названию процесса)

taskkill /f /PID
дальше нужна какаято переменная...


можете направить в нужное русло?
Автор: bomzzz
Дата сообщения: 30.09.2009 14:20
killtask /f /im MyProcessName.exe

нужное русло кнопка винды плюс F1, W + F1
Автор: ZDik
Дата сообщения: 30.09.2009 19:31
01MDM спасибо, а если доработать 2 задачу: приделать порядковый номер к названию папки, если аналогичная папка на сетевом ресурсе если ее размер не равне 0, добавить в конце имени папки "-"

как сделать ярлык для ТС для запуска батника из папки "D:\Foto 1" и в качестве параметра указать текущую папку?
Автор: 01MDM
Дата сообщения: 30.09.2009 23:08
ZDik

Цитата:
приделать порядковый номер к названию папки, если аналогичная папка на сетевом ресурсе если ее размер не равне 0, добавить в конце имени папки "-"


Код:
@echo off
setlocal

for /f "tokens=*" %%i in (list.txt) do call:check "%%i"
goto:eof
    
:check
set /a cnt+=1    
if exist z:\%1 (
    for /f "tokens=*" %%i in ('dir /b /s /a z:\%1') do (
        if %%~zi gtr 0 set "isEmpty=-" && goto:md
    )
)

:md
md "%cnt%_%~1%isEmpty%"
set "isEmpty="
Автор: musicstashall
Дата сообщения: 01.10.2009 17:42
Ребята, имеется вот такой код для завладения системными папками и файлами в Windows 7 для последующих операций с некоторыми системными файлами.:

Код: if exist "%systemroot%\sysWOW64" goto end
if not exist "%systemroot%\System32\mcbuilder.exe" goto end
%windir%\System32\mcbuilder.exe
:end

takeown /f %systemroot%\rescache\ /r /d y >nul
takeown /f %systemroot%\ru-RU\ /r /d y >nul
takeown /f %systemroot%\Resources\ /r /d y >nul
takeown /f %systemroot%\system32\ru-RU\ /r /d y >nul
takeown /f %systemroot%\SysWOW64\ru-RU\ /r /d y >nul

icacls %systemroot%\rescache\ /grant:r администраторы:F /t >nul
icacls %systemroot%\ru-RU\ /grant:r администраторы:F /t >nul
icacls %systemroot%\system32\ru-RU\ /grant:r администраторы:F /t >nul
icacls %systemroot%\SysWOW64\ru-RU\ /grant:r администраторы:F /t >nul
icacls %systemroot%\Resources\ /grant:r администраторы:F /t >nul
Автор: ZDik
Дата сообщения: 01.10.2009 21:11
01MDM ничего не понятно, но огромное спасибо попробую)
еще осталось: как сделать ярлык для запуска батника из папки "D:\Foto 1" и в качестве параметра указать текущую папку?
Автор: vovanius1
Дата сообщения: 01.10.2009 23:05
01MDM
вот выяснил, что команда

netsh interface ip show dns "Internet"

показывает первичный и вторичный ДНС для выбранного интерфейса (в моем случае "Internet") в таком виде:


Configuration for interface "Internet"
Statically Configured DNS Servers: ххх.ххх.ххх.ххх
ууу.ууу.ууу.ууу
Register with which suffix: None


вот как бы оттуда выкусить адреса и присвоить их переменным? Я пока слабо с for /f дружу
Автор: bomzzz
Дата сообщения: 02.10.2009 00:11
vovanius1
можешь на 55 странице посматреть пост второй сверьху - там последовательно видоизменяется команда FOR так что понятно как она работает.
Автор: 22247
Дата сообщения: 02.10.2009 01:06
Всем привет!

есть такая строка:

rar a DisplayDriver -ag_DDMM -dh -m5
создаёт файл DisplayDriver_0210.rar

Мне нужно чтоб фай имел расширение не .rar, а например .777 (ну или любое другое)

можно ли єто сделать непосредственно при упаковке.
или нужно будет переименование?

Заранее благодарю Всех за ответ!
Автор: Detroiter
Дата сообщения: 02.10.2009 01:24
Форумчане, помогите, пожалуйста

Нужен батник, который будет перезапускать определенный процесс (utorrent.exe). Я так понимаю, нужно прописать удаление и затем вызов процесса. Ну и чтобы я смог путь к файлу свой добавить

Заранее спасибо!
Автор: bomzzz
Дата сообщения: 02.10.2009 01:58
22247
открыл RAR и в строке сохранить как изменил раширение rar на 8888 - он так и заархивировался, значит можно, читай командную строку к рару. она лежит в папке рара в текстовом файле
Detroiter
о каком пути базар????

Цитата:

taskkill /f /im utorrent.exe
ping 127.0.0.1 -n 2 >nul
utorrent.exe

не знаю нужна ли задержка (средняя строка 2 секунды) и какая надо пробовать, в принципе после таск килл отчет идет скорее всего и без паузы будет работать, можно вот так сделать utorrent.exe /recover

я смотрю какой то баран на википедии статью "улучшил" про µTorrent. вот старую сохранил http://bomz.t35.com/torr.htm
здесь все возможности освещены.

может просто тебе надо сделать папку и в настройках настройить чтоб торрент файл из нее автоматически на закачку вставали - просто туда файл помещаешь или копируеешь.
Автор: Detroiter
Дата сообщения: 02.10.2009 02:35

Цитата:
о каком пути базар????


о полном пути, к исполняемому файлу

Большое спасибо за отзывчивость!
Автор: bomzzz
Дата сообщения: 02.10.2009 06:06

Цитата:

taskkill /f /im utorrent.exe
ping 127.0.0.1 -n 2 >nul
start C:\PROGRA~1\UTORRENT\utorrent.exe


ни понял не фига - если программа уже запущена зачем ее тогда оснавливать и запускать, только ради исполняемого пути без которого ее и в первый раз нельзя было запустить???
Автор: Detroiter
Дата сообщения: 02.10.2009 09:16
bomzzz
нет, вы меня не поняли

я просто думал, что для успешной работы батника нужно там будет прописывать полный путь к файлу
Автор: bomzzz
Дата сообщения: 02.10.2009 10:33
ну если батник валяется в директории рядом с исполняемым файлом µTorrent-а то не надо
Автор: 22247
Дата сообщения: 02.10.2009 10:58
bomzzz, читал, искал... если б нашол не просил бы помощи... может кто пальцем покажет...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


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