Просмотр полной версии : BAT - работа с BAT-файлами
ErikPshat
14.09.2018, 00:57
Демонстрация ползущего и вращающегося курсора
ErikPshat
14.09.2018, 01:31
Ещё пример с прогресс-баром:
@Echo Off
Setlocal EnableDelayedExpansion
rem Число символов в прогрессбаре
Set N_Col=79
rem Число иттераций (запускаемых файлов 1...4) на 100%
Set cntA=4
Set cnt=0
Echo Обработка запущена
rem Здесь прописывается список запускаемых файлов с ключами в кавычках
For %%I In (
"Setup1.exe /Q"
"Setup2.exe /Q"
"Setup3.exe /Q"
"Setup4.exe /Q"
) Do (
%%~I
Call :Bar Обработано
)
Echo.
Echo Обработка завершена
Pause>nul
Exit
:Bar
If %cnt%==0 (
Set Line0=
For /L %%a In (1,1,%N_Col%) Do Set Line0=!Line0!░
For /L %%a In (1,1,%N_Col%) Do Set Line0=!Line0!
<Nul Set /p X=!Line0!
)
Set /a Inc=((cnt+1)*N_Col)/cntA-(cnt*N_Col)/cntA
If %Inc% GTR 0 For /L %%a In (1,1,%Inc%) Do Set /p X=█<Nul
Set /a cnt+=1
Set /a prsnt=cnt*100/cntA
Title %1 %prsnt%%% файлов: %cnt% из %cntA%
GoTo :EOF
ErikPshat
15.12.2018, 07:47
Батник для поиска 16-ричных значений в папке с подпапками: требуется утилита SFK (Swiss File Knife (http://stahlworks.com/dev/swiss-file-knife.html))
@echo off
for /f %%A in (Samples.txt) do sfk hexfind -binary /%%A/ -dir POP6_RS\sound -file .sb5
pause
В скрипте указываем директорию сканирования и расширение сканируемых файлов.
Пример содержимого Samples.txt:
84ED000048220000
0E150100C0270000
B0F2000060230000
6C7B0100F8350000
181E0100D8280000
Либо подставляем один набор искомых байтов, к примру, ищем в файлах звуки WAVE/AT3 - 52494646 (RIFF).
Стырено отсюда: http://www.pspx.ru/forum/showpost.php?p=1120839 (чтобы в следующий раз не вспоминать)))
И более усовершенствованный код батника. Надеюсь по скрипту всё понятно, куда и что вписывать надо:
При обнаружении искомого хекс-значения, консоль вам это покажет и встанет на паузу. Затем нажимаете Enter и поиск продолжается.
@echo off
setlocal EnableDelayedExpansion
:: Вставьте ниже, после равенства, директорию с файлами и искомое хекс-значение
set dir=123
set hex=494255544500424F4F5441424C450043
:: Ниже код не трогаем, кроме пути к утилите sfk (Swiss File Knife)
if exist "!dir!" (
for /f %%A in ('dir /b /s /a:-d "!dir!"') do (
set /a num+=1
set file=%%A
set fldr=!file:\%%~nxA=!
echo Parsing file !num!: %%~nxA
sfk hexfind -binary /!hex!/ -dir "!fldr!" -file "%%~nxA" ||echo.&&echo Found value "!hex!" in file "%%~A"&&echo.&&pause
echo.
)
) else (
echo. && echo Not found directory "!dir!"|!col! 0C && echo.
)
pause
ErikPshat
20.07.2022, 12:10
Просто Mario :)
18274
ErikPshat
20.07.2022, 12:12
Утилитки для работы с батниками
Shell Scripting Toolkit: https://westmesatech.com/?page_id=26
Небольшой пример: 18277
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc. Перевод: zCarot