

$arg1 = @('"', $patcherFile, '"')
$arg2 = @('"', $targetFile , '"')
Start-Process powershell -Verb RunAs -ArgumentList "-noexit -File", ($arg1 -join ""), "-filePath", ($arg2 -join ""), "-patterns $patterns"
А сам не понимаешь? Что с тобой не так? Ты смотришь на код и не можешь проследить ход его работы? Объясняю:
1 call :testname передает управление на метку :testname
2 исполняется код до goto :eof
3 goto :eof приводит к выходу из кода, вместо выхода из процедуры
4 последние три инструкции кода не исполняются из-за пункта 3
5 код закончил исполнение - окно с командной строкой закрывается
6 Drovosek01 хлопает глазами и не понимает.
@echo off
set "path_bin_1=d:\TEMP\test.exe"
call :testname
pause
exit
REM тело функции располагаем в конце после оператора exit чтобы предотвратить выполнение в потоке.
:testname
echo "%path_bin_1%"
for /F "delims=" %%a in ("%path_bin_1%") do (
set file=%%~fa
set filepath=%%~dpa
set filename=%%~nxa
)
exit /B
echo "%path_bin_1%"
echo "%filename%"
pause [byte[]]$bInput = Get-Content D:\TEMP\test.exe -Encoding Byte -Raw
$bOriginal = [Byte[]](0x48, 0x83, 0xEC, 0x28, 0x48, 0x8D, 0x0D, 0xE5)
$bSubstitute = [Byte[]](0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88)
$bOutput = [Byte[]]("$bInput" -Replace "\b$bOriginal\b", "$bSubstitute" -Split '\s+')
Set-Content "D:\TEMP\test22.exe" -Encoding Byte -Value $bOutput
https://gist.github.com/Drovosek01/9d47068365ea0bc...
Основной код скрипта - блок try внизу файла и уже внутри try вызываются все остальные функции
.
Мне кажется, что условия if с последующими write-host внутри блока try выглядят не очень красиво, я выделил их в функцию
а в блоке try на их месте выполняю HandleFoundPatternsIndexes $patterns $foundPatternsIndexes и при этом получаю указанные выше ошибки