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

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

Автор: dj_Diesel
Дата сообщения: 18.11.2008 07:55
а у меня вопрос в другом как защитить батник

рассказываю по порядку мне здесь сделали батник который который спрашиает пароль при запуске если неправильный пароль то ребут

проблема в том что можно спокойно закрыть окошко батника крестиком и все
вопрос как сделать чтобы при закрытии окна крестиком или Alt+F4
был тоже ребут

а то смысла нет в батнике ....
Автор: batniki
Дата сообщения: 18.11.2008 11:11
dj_Diesel, можно внутри защищаемого батника сделать вывод и запуск в файл 2-го батника, в нем сделать, что-то типа цикла проверки процессов системы с помощью WMIC, окно второго батника прятать (чтобы его нельзя было закрыть) с помощью специальной утилиты командной строки. Если второй батник обнаружит, что в процессах только один cmd.exe , то он ребутнет систему – как вариант реализации, хотелось бы тоже посмотреть на код
Автор: ipmanyak
Дата сообщения: 18.11.2008 14:21
dj_Diesel Скомпили батник в exe файл и сделай его службой.
Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
Позволяет скомпилить батник в exe без создания окна windows! Попробуй, может и прокатит.
Автор: king_stiven
Дата сообщения: 18.11.2008 16:00
Вот схематический набросок батника. Не пойму, почему
echo %%~nd
правильно показывает. Причём, мы все переменные %%d можем заменить на другие, например %%r, так что дело не в букве. Каким то образом после перехода
call brabotka
пременная %%~nd выводится. Будет ли это на всех компах?

Код: for %%c in (%1) do (
if exist "%%c\" (
for /f "usebackq tokens=*" %%d in (`dir "%%c*.mp3" /b`) do (
set "name=%%~nxd"
set "way=%%~dpd"
call : obrabotka
)
)
)
goto :eof
: obrabotka
for /f "usebackq tokens=*" %%g in (`dir "%way%*.mp3" /b /o:-n`) do (
if not "%%g"=="%name%" (
echo %%~nd
goto ...
)
)
Автор: avkorets
Дата сообщения: 18.11.2008 16:09
граждане форумчане тыкните ошибку...

Цитата:

@echo off
cls
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set /p firstline=<%%i
echo !firstline!>> 1.tmp
setlocal
for /f "skip=1 tokens=1-8 delims=;" %%a in (%%j) do (set x=%%d
:run
set /a cnt+=1
if not "!x:~%cnt%,1!"=="" goto run
if "%cnt%"=="20" ( set
echo %%a;%%b;%%c;%%d;;;;%%f;;%%e;%%g;%%h>> 1.tmp
) else (
echo %%a;%%b;%%c;;%%d;;;%%f;;%%e;%%g;%%h>> 1.tmp
)
)
)

считает длину переменной только из первой орабатываемой строки, из последующих строк в файле не считает..
буду признателен..
Автор: vitaliy91
Дата сообщения: 18.11.2008 16:59
Как с помощью батника можно определить что комп начал перезагружаться или выключаться ?
Автор: king_stiven
Дата сообщения: 18.11.2008 17:10
avkorets
вывод построчно содержимого файла

for /f "usebackq tokens=*" %%c in ("1.txt") do echo %%c
или тебе надо назначить переменной несколько строчек файла? Вот этот батник назначает переменной u все строчки файла.

setlocal enabledelayedexpansion
for /f "usebackq tokens=*" %%c in ("1.txt") do (
if defined u set u=!u! %%c
if not defined u set u=%%c
)
Автор: dj_Diesel
Дата сообщения: 18.11.2008 17:40
@echo off
setlocal
set /p pass="Please, enter password : "
if not "%pass%"="12345678" (
echo The password is wrong, rebooting....
shutdown -r -f
goto :EOF
)
...
...
...
EXIT

вот код!

Добавлено:
batniki
лучше Ваш способ насчет
Цитата:
можно внутри защищаемого батника сделать вывод и запуск в файл 2-го батника, в нем сделать, что-то типа цикла проверки процессов системы с помощью WMIC, окно второго батника прятать (чтобы его нельзя было закрыть) с помощью специальной утилиты командной строки. Если второй батник обнаружит, что в процессах только один cmd.exe , то он ребутнет систему – как вариант реализации, хотелось бы тоже посмотреть на код



так как Ваш способ ipmanyak не подошел, если обычный exe то опять таки спокойно крестиком закрывается, если без окна то просто висит в процессах ввести пароль нельзя silent mode и все
Спасибо за помощь

Автор: Freemanther
Дата сообщения: 18.11.2008 18:36
Нужен такой батник:
Копирует 3000 файлов с расширением vtx в те же папки, но расширение меняется на .sw.vtx, список файлов есть, как мне автоматизировать процесс?
Автор: dj_Diesel
Дата сообщения: 18.11.2008 18:39
Freemanther
прога BatchRename и все
Автор: Freemanther
Дата сообщения: 18.11.2008 18:58
Тормознутая прога, да и как ею в батник всё это сохранить?
Автор: king_stiven
Дата сообщения: 18.11.2008 19:34
Freemanther

Код: chcp 1251 > nul
for /f "usebackq tokens=*" %%i in ("список файлов.txt") do copy "%%i" "%%~dpi%%~ni.sw.vtx"
Автор: avkorets
Дата сообщения: 18.11.2008 20:53
king_stiven
задача следущая.
в директории находятся файлы...это первый цикл в коде.
первую строку из файла записываем в другой файл затем я назначаю переменные в строке файла разделенные ; и эти переменные вывожу в другой файл но в другом порядке и форме.
так вот мне нужно подсчитать колво символов в переменной %%d (их a,b,c,d,e,f и т.д.)и если их 20 то печатаем одну форму если не 20 другую...И это должно выполнятся для всех строк в файле..
Причем в каждой строке переменная %%d имеет разное колво символов.
Для подсчета длины пеерменной пользуюсь

Цитата:

set /a cnt+=1
if not "!x:~%cnt%,1!"=="" goto run
if "%cnt%"=="20"

так вот написанный выше код выполняется только для первой строки в файле остальные он не обрабатывает..
вот вчем вопрос как сделать чтоб обрабатывал все строки.И подсчитывал длину переменной %%d из каждой строки.
Автор: king_stiven
Дата сообщения: 18.11.2008 22:35
avkorets

Код: for %%a in (*.txt) do (
for /f "usebackq tokens=*" %%b in ("%%a") do (
for /f "tokens=1-8 delims=;" %%c in ("%%b") do (
set k=
set forma=%%f
call :START
IF "!k!"=="20" (
....
) else (
....
)
)
)
)
goto :eof

:START
set /a k+=1
IF not ""=="!forma:~0,-%k%!" goto:START
Автор: postmike
Дата сообщения: 18.11.2008 22:43
Уважаемые специалисты, помогите
написать такой батник или ткните в похожий.
Сам найти не смог

имеется папка_A с вложенными папками, в которых лежат файлы zip архивов и разные прочие файлы.

надо перенести все содержимое в папку_B, только все zip архивы распаковать и запаковать снова rar-ом с максимальным сжатием. Внутренняя структура папок, имена файлов должны сохраниться, только zip-ы станут rar-ами.

Цель - ужать все на 10% чтобы влезало на DVD
(возможно это важно - имена папок и файлов имеют пробелы и русские символы)
Автор: Nagual
Дата сообщения: 19.11.2008 01:36
postmike
как-то так попробуй, не тестил

Код:
@echo off
set wr=c:\program files\winrar\winrar
for /r . %%a in (*.zip) do (
%wr% x "%%a" "%temp%\%%~na\"
%wr% a -m5 -r -ep1 "%%~dpna.rar" "%temp%\%%~na\"
rd/s/q "%temp%\%%~na\"
)
код сохрани в кодировке 866
Автор: GORA2
Дата сообщения: 19.11.2008 09:41
Подскажите, как написать простенький цикл который бы печатал номера от 1 до 999, но в трехзначном формате (001,002,003...011,012...899,900...999) ?
Автор: Nagual
Дата сообщения: 19.11.2008 10:09
GORA2
Код:
for /l %%a in (1,1,999) do (
set n=%%a
call:ch
)
goto:eof
:ch
set
"n=000%n%"
set "n=%n:~-3%"
@echo %n%>>1.txt
Автор: GORA2
Дата сообщения: 19.11.2008 12:28
Nagual
Спасибо, то что надо. Очепятку в конце файла (отсутствие goto:eof ) сам поправил.
Автор: batniki
Дата сообщения: 19.11.2008 15:17
Подскажите, как вывести из файла на экран строки, но при этом сохранить их форматирование, т. е если в файле было три пробела перед строчкой, то и в сценарии, чтоб были пробелы от левого края, и чтоб каждая строчка из файла сохранялась на выводе, а то как-то сумбурно получается текст в одну строку
Автор: 01MDM
Дата сообщения: 19.11.2008 16:38
batniki
Если речь идет о построчном выводе с сохранением форматирования (отступы, табуляция, пустые строки и т.д), то задача сложная и над ней бьется не одно поколение... А так `type` и `more`.
Автор: Elroir
Дата сообщения: 19.11.2008 16:40
batniki
А теперь внимательно и вдумчиво перечитай свой последний пост и попробуй его сформулировать заново - так, чтобы было понятно о чем ты говоришь. Например, фраза "
Цитата:
и чтоб каждая строчка из файла сохранялась на выводе, а то как-то сумбурно получается текст в одну строку

является для меня загадкой
Автор: batniki
Дата сообщения: 19.11.2008 17:14
Elroir, извиняюсь за непонядки , имелось ввиду, как заметил 01MDM, сохранение форматирования текста. Можно добавить пару строк с регулярными выражениями для findstr к подобию парсера ,
сейчас очень мало времени, если получится сделать - опубликую.
Спасибо вам за то, что помогаете
Автор: dj_Diesel
Дата сообщения: 19.11.2008 18:19
batniki


Цитата:
можно внутри защищаемого батника сделать вывод и запуск в файл 2-го батника, в нем сделать, что-то типа цикла проверки процессов системы с помощью WMIC, окно второго батника прятать (чтобы его нельзя было закрыть) с помощью специальной утилиты командной строки. Если второй батник обнаружит, что в процессах только один cmd.exe , то он ребутнет систему – как вариант реализации, хотелось бы тоже посмотреть на код


как это осуществить

код

Цитата:
@echo off
setlocal
set /p pass="Please, enter password : "
if not "%pass%"="12345678" (
echo The password is wrong, rebooting....
shutdown -r -f
goto :EOF
)
...
...
...
EXIT

Автор: batniki
Дата сообщения: 19.11.2008 19:05
Я всего лишь предложил способ реализации.

Во втором батнике нужно делать, что-то типа

Код: WMIC /OUTPUT:%TMP%\proc.txt PROCESS LIST BRIEF /FORMAT:HTABLE
Автор: qrock
Дата сообщения: 19.11.2008 20:52
Вопросец!
копирую файлы:
xcopy c:\*.txt c:\temp /d:m-d-y

/d:m-d-y - опция, при которой обрабатываются файлы с датой создания равной или поздней чем m-d-y. Как мне подставить в m-d-y текущую дату? Есть переменная %date%, но она возвращает dd.mm.yyy, как это привести в батнике к mm-dd-yyyy?
Автор: Elroir
Дата сообщения: 19.11.2008 21:05
qrock
Как-то так:

Код:
@echo off
setlocal
set "dd=%date:~0,2%"
set "mm=%date:~3,2%"
set "yy=%date:~-2%"
xcopy c:\*.txt c:\temp /d:%mm%-%dd%-%yy%
Автор: Almasy
Дата сообщения: 20.11.2008 00:22
Здравствуйте.
Прошу простить, если данный вопрос уже звучал, но хотелось бы узнать, возможно через "батник" копировать файлы на винчестер из "флешек", подсоеденяемых к компу??
Автор: qrock
Дата сообщения: 20.11.2008 06:58
Elroir
Спасибо, то что надо!
Автор: king_stiven
Дата сообщения: 20.11.2008 07:54
Almasy

Цитата:
возможно через "батник" копировать файлы на винчестер из "флешек", подсоеденяемых к компу??

Можно
xcopy /?
copy /?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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