Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230

Многократный запуск программы с множеством параметров и путями с пробелами, запись прогресса работы в лог файл

30.05.2022, 17:41. Показов 5196. Ответов 67
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В соседней теме про CMD выяснилось что командная строка там не умеет,
зато умеет PS

подскажите, как лучше реализовать такое

вот пример, нужно выполнить подобные команды последовательно, для каждой сохранив отдельный лог

aMod.exe --profile main10 --level-idc 5.1 --crf 18.0 --preset medium --ref 4 --no-cutree --deblock -2:-2 --merange 57 --max-merge 3 --rd 3 --ctu 32 --early-skip --bframes 6 --psy-rd 2.00 --frame-threads 2 --qcomp 0.68 --subme 3 --me 3 --rc-lookahead 20 --min-keyint 24 --keyint 240 --range limited --tu-inter-depth 3 --tu-intra-depth 3 --limit-tu 4 --no-strong-intra-smoothing --rdoq-level 1 --no-sao --no-sao-non-deblock --early-skip --rskip 1 --aud --repeat-headers --hrd --output-depth 10 --hdr-opt --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000 )WP(15635,16450)L(40000000,50)" --max-cll=0,0 --chromaloc 2 --output "D:\TEST\1.hevc" "D:\TEST\1.avs"

aMod.exe --profile main10 --level-idc 5.1 --crf 18.0 --preset medium --ref 4 --no-cutree --deblock -2:-2 --merange 57 --max-merge 3 --rd 3 --ctu 32 --early-skip --bframes 6 --psy-rd 2.00 --frame-threads 2 --qcomp 0.68 --subme 3 --me 3 --rc-lookahead 20 --min-keyint 24 --keyint 240 --range limited --tu-inter-depth 3 --tu-intra-depth 3 --limit-tu 4 --no-strong-intra-smoothing --rdoq-level 1 --no-sao --no-sao-non-deblock --early-skip --rskip 1 --aud --repeat-headers --hrd --output-depth 10 --hdr-opt --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000 )WP(15635,16450)L(40000000,50)" --max-cll=0,0 --chromaloc 2 --output "D:\TEST\2.hevc" "D:\TEST\2.avs"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2022, 17:41
Ответы с готовыми решениями:

Запуск программы по Task sheduler и запись в лог-файл
Имеется простое консольное приложение, делающее некоторые операции в бд. После выполнения операций она пишет некоторые данные в лог-файл,...

запуск приложения с множеством параметров
Добрый день. У меня дома 2 компа и использую 3proxy, но просто его запустить не получаеться нужно много параметров. к делу: нужно...

Запуск сторонней программы, со своими относительными путями
Знаю ShellExecute. Но есть серьезная проблема которая заключается в том что у запускаемой программы относительные пути идут относительно...

67
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
30.05.2022, 21:20  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от volodin661 Посмотреть сообщение
это безобразие только для теста;
безобразие провалилось )))
не запускается

я думаю надо посмотреть что генерируется в коде запуска для амод

у меня еще амод в путях не прописан, может дело в этом?
я заменил 'aMod.exe ' на '"C:\amod\aMod.exe" '
не помогло, вероятно не в этом дело
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
30.05.2022, 21:29
убери слово iex, тогда на экране увидишь саму строку для исполнения
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
30.05.2022, 21:53  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
убери слово iex, тогда на экране увидишь саму строку для исполнения
убрал, окно PS закрывается

Добавлено через 14 минут
EXEC-AMOD.PS1 должен лежать в той же папке что и файл запуска?
а то путь то не полный прописан
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
30.05.2022, 22:02
Окно PS должно быть всегда распахнуто настежь.
Я жеж говорил, это ком. оболочка, её не надо всё время запускать и закрывать.

Один раз запускаешь powershell и потом сидишь в этом окне всю оставшуюся жизнь, ничего не закрывая.

Добавлено через 1 минуту
вот в этом всегда распахнутом окне набираешь
PowerShell
1
./exec-amod.ps1 settings1.json
и смотришь на результат
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
30.05.2022, 22:07  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
и смотришь на результат
./exec-amod.ps1 : Имя "./exec-amod.ps1" не распознано как имя командлета, функции, файла сценария или выполняемой
программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ ./exec-amod.ps1 settings1.json
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (./exec-amod.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

я так полагаю сначала надо пути прописывать или как?

вообще, запуск из окна не вариант, допустим мне за раз нужно запустить 30 файлов на кодирование.
соответственно это все равно должен быть какой то скрипт запуска PS
который будет запускать кодирование для каждого файла
с заранее выбранными настройками

я же не могу сидеть перед окном и запускать файлы руками по одному

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set-Location C:\amod
PS C:\amod> ./exec-amod.ps1 settings1.json
ConvertFrom-Json : Не удается найти параметр, соответствующий имени параметра "ashash".
C:\amod\exec-amod.ps1:2 знак:49
+ $hash = Get-Content $config | ConvertFrom-JSON  -ashash
+                                                 ~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [ConvertFrom-Json], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
 
Невозможно вызвать метод для выражения со значением NULL.
C:\amod\exec-amod.ps1:3 знак:1
+ $hash.getenumerator() | Foreach-Object -BEGIN{ $cmd = '"C:\amod\aMod. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
30.05.2022, 22:45
в данном случае подразумевается, что все файлы( исполняемые и конфиги ) живут в текущем каталоге.

Добавлено через 54 секунды
про 30 файлов разговор будет потом

Добавлено через 3 минуты
Какая версия powershell ?

( надо набрать $PSVERSIONTABLE )

Добавлено через 8 минут
я уже посмотрел, -AsHashtable это совсем новая опция,
в 5.1 её нет.

м-да, недоглядел. надо подумать, как обойти эту неприятность.

Добавлено через 2 минуты
( понятно, что можно накатить 7.2, но это неспортивно )

Добавлено через 16 минут
EXEC-AMOD.PS1

PowerShell
1
2
3
4
param ($config, $group )
$hash = @{}
(Get-Content $config | ConvertFrom-JSON).psobject.properties.Foreach{ $hash[$_.Name] = $_.Value }
$hash.getenumerator() |% {$cmd = 'perl amod.pl '} {$cmd+=" --$($_.key) $($_.value) "}  {$cmd}
0
2807 / 505 / 121
Регистрация: 26.09.2020
Сообщений: 954
Записей в блоге: 5
30.05.2022, 23:06
Start-Process -ArgumentList $arguments
такую строку аргументов формирует: --profile main10 --level-idc 5.1 --crf 18.0 --preset medium --ref 4 --no-cutree --deblock -2:-2 --merange 57 --max-merge 3 --rd 3 --ctu 32 --early-skip --bframes 6 --psy-rd 2.00 --frame-threads 2 --qcomp 0.68 --subme 3 --me 3 --rc-lookahead 20 --min-keyint 24 --keyint 240 --range limited --tu-inter-depth 3 --tu-intra-depth 3 --limit-tu 4 --no-strong-intra-smoothing --rdoq-level 1 --no-sao --no-sao-non-deblock --early-skip --rskip 1 --aud --repeat-headers --hrd --output-depth 10 --hdr-opt --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50)" --max-cll=0,0 --chromaloc 2 --output "D:\HDR TEST\avengers\10bit HDR_med 2.hevc" "D:\HDR TEST\avengers\10bit HDR.avs" правильная строка, программа с ними стартует?

зы
аргументы из поста 10
Миниатюры
Многократный запуск программы с множеством параметров и путями с пробелами, запись прогресса работы в лог файл  
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
31.05.2022, 08:32  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
Какая версия powershell ?
так который по умолчанию в виде 10ой, винда со всеми обновлениями

Цитата Сообщение от volodin661 Посмотреть сообщение
надо набрать $PSVERSIONTABLE
Name Value
---- -----
PSVersion 5.1.19041.1682
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1682
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Цитата Сообщение от volodin661 Посмотреть сообщение

( понятно, что можно накатить 7.2, но это неспортивно )
главное что бы работало ))) обновить то не сложно

Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
правильная строка, программа с ними стартует?
вроде правильная, ошибка была в какой то там команде, вот выше написал человек как исправить
только не по порядку+ не хватает входного выходного файла (в новом варианте)

Цитата Сообщение от volodin661 Посмотреть сообщение
PowerShell
1
2
3
4
param ($config, $group )
$hash = @{}
(Get-Content $config | ConvertFrom-JSON).psobject.properties.Foreach{ $hash[$_.Name] = $_.Value }
$hash.getenumerator() |% {$cmd = 'perl amod.pl '} {$cmd+=" --$($_.key) $($_.value) "}  {$cmd}
результат

PS C:\amod> ./exec-amod.ps1 settings1.json
perl amod.pl --me 3 --range limited --merange 57 --keyint 240 --no-sao --deblock -2:-2 --repeat-headers --tu-inter-depth 3 --min-keyint 24 --colorprim bt2020 --profile main10 --max-cll =0,0 --no-sao-non-deblock --rd 3 --rskip 1 --frame-threads 2 --level-idc 5.1 --colormatrix bt2020nc --no-strong-intra-smoothing --no-cutree --limit-tu 4 --max-merge 3 --ctu 32 --tu-intra-depth 3 --subme 3 --crf 18 --master-display "G(13250,34500)B(7500,3000)R(34000,16000 )WP(15635,16450)L(40000000,50)" --output-depth 10 --hdr-opt --psy-rd 2.0 --hrd --chromaloc 2 --rc-lookahead 20 --rdoq-level 1 --ref 4 --transfer spte2084 --aud --bframes 6 --qcomp 0.68 --preset medium --early-skip

единственный минус, параметры почему то идут не по порядку, не как в файле, что усложняет проверку и редактирование
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
31.05.2022, 12:48
EXEC-AMOD.PS1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
param
(
    [Parameter(Mandatory)]$conf,
    [Parameter(Mandatory)]$out,
    [Parameter(Mandatory)]$in
)
 
$json = (Get-Content $conf | ConvertFrom-JSON)
 
$cmd  = "amod.exe "
 
foreach ( $prop in $json.psobject.properties )
{
   $cmd += " --" + $prop.name + " " + $prop.value
}
 
$cmd += " --output `"$out`" `"$in`" "
 
write-debug $cmd
 
iex $cmd | tee-object amod.log
Вызов:
PowerShell
1
2
3
4
./exec-amod set1.json out.hevc in.avs
 
#или так; ( кроме того, порядок именованных параметров можно менять )
./exec-amod -conf set1.json -out out.hevc -in in.avs
Добавлено через 16 минут
PS:
Полезно будет установить утилиту jq:

PowerShell
1
scoop install jq
Красиво оформить и проверить JSON на валидность
PowerShell
1
jq . set1.json
поменять какой-нибудь параметр внутри JSON налету:
PowerShell
1
jq '.profile=\"new\"' set1.json
PowerShell
1
jq '.profile=\"new\"' set1.json > tmp.json

jq много чего умеет
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
31.05.2022, 20:37  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
PowerShell
1
2
3
./exec-amod set1.json out.hevc in.avs
#или так; ( кроме того, порядок именованных параметров можно менять )
./exec-amod -conf set1.json -out out.hevc -in in.avs
менять порядок загрузки это 2ой вариант?
надо что бы оно грузило их подряд, это упростит изменение конфигов

запустил

amod.exe : Имя "amod.exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания
имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ amod.exe --profile main10 --level-idc 5.1 --crf 18 --preset medium - ...
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (amod.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

что то не так? )
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
01.06.2022, 02:59
Цитата Сообщение от pozitiv_rus Посмотреть сообщение
запустил
amod.exe : Имя "amod.exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания
имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ amod.exe --profile main10 --level-idc 5.1 --crf 18 --preset medium - ...
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (amod.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
воспроизвести не удалось.

Поскольку amod.exe у меня нет,
пришлось сделать свою собственную для тестирования.

gen-amodexe.ps1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$src_file    = "__amod.cs"
$exe_file    = "__amod.exe"
$source      = @"
using System;
using System.IO;
 
class EEE
{
    static void Main( string[] args )
    {
        if ( args.Length > 0 )
        {
            foreach ( var prop in args )
            {
                Console.Out.WriteLine( prop );
            }
        }
        else
        {
            Console.Out.WriteLine("No arguments");
        }
 
    }
}
"@
 
$source | set-content -Force -Path $src_file
 
$csc = (dir -r $env:windir/Microsoft.NET/Framework*/csc.exe)[-1].FullName 
 
$arglist = "-PLATFORM:anycpu -NOLOGO -OPTIMIZE -TARGET:exe -OUT:$exe_file $src_file"
 
$process = Start-Process -NoNewWindow -PassThru -Wait -FilePath $csc -ArgumentList $arglist 
 
if ( $process.ExitCode -eq 0 ) 
{ 
    remove-item $src_file
    "successfully compiled to $exe_file !" 
}
называться будет __amod.exe, чтоб не испортить случайно настоящую

Добавлено через 2 минуты
как видно из исходного текста, __amod.exe просто выводит поаргументно свою командную строку на STDOUT
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
01.06.2022, 02:59
как видно из исходного текста, __amod.exe просто выводит поаргументно свою командную строку на STDOUT
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
01.06.2022, 08:59  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
Поскольку amod.exe у меня нет,
пришлось сделать свою собственную для тестирования.
вот он https://github.com/DJATOM/x265-aMod/releases

PS C:\amod> .\gen-amodexe.PS1 settings1.JSON
successfully compiled to __amod.exe !
PS C:\amod>
PS
Цитата Сообщение от volodin661 Посмотреть сообщение
называться будет __amod.exe, чтоб не испортить случайно настоящую
не совсем понимаю что это дает и что с этим делать )
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
01.06.2022, 14:17
это я к тому, что взял виндовс 7, powershell 5.1, сымитировал amod.exe,
никаких таких сообщений о невозможности запуска не вижу, работает.


exec-amod.ps1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
param
(
    [Parameter(Mandatory)] $conf,
    [Parameter(Mandatory)] $out,
    [Parameter(Mandatory)] $in,
             [ScriptBlock] $sb = {}
)
 
$json = (Get-Content $conf | ConvertFrom-JSON)
 
&$sb $json
 
$exe_file  = '__amod.exe'
$log_file  = 'amod.log'
if ( Test-Path $log_file )
{
    Remove-Item $log_file
}
 
foreach ( $prop in $json.psobject.properties )
{
   $arg_list += " --$($prop.name) $($prop.value)"
}
 
$arg_list += " --output `"$out`" `"$in`" "
 
write-debug $arglist
 
$psi                          = New-object System.Diagnostics.ProcessStartInfo
$psi.CreateNoWindow           = $true
$psi.UseShellExecute          = $false
$psi.RedirectStandardOutput   = $true
$psi.RedirectStandardError    = $false
$psi.FileName                 = $exe_file
$psi.Arguments                = $arg_list
 
$process                      = New-Object System.Diagnostics.Process
$process.StartInfo            = $psi
$started = $process.Start()
if ( -not $started )
{
    Write-Host "Can't start $exe_file"
    return
}    
$process.WaitForExit()
do
{
   $line = $process.StandardOutput.ReadLine()
   $line | Tee-Object -Append -FilePath $log_file
   if ( $process.HasExited ) {
       $buffer = $process.StandardOutput.ReadToEnd()
       break;
    } 
}
while (-not $process.HasExited)
 
if ( $buffer )
{
   $buffer | Tee-Object -Append -FilePath $log_file
}
Добавлено через 5 минут
исполнение:
PowerShell
1
./exec-amod set1.json file.out file.in
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
01.06.2022, 19:04  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
никаких таких сообщений о невозможности запуска не вижу, работает.
старнно, а у меня почему то не хочет (

PowerShell
1
2
3
4
5
6
7
8
PS C:\amod> ./exec-amod set1.json D:\HDR TEST\avengers\10bit HDR_med 2.hevc D:\HDR TEST\avengers\10bit HDR.avs
C:\amod\exec-amod.ps1 : Не удается обработать преобразование аргументов для параметра "sb". Не удается преобразовать значение "HDR_med" типа
"System.String" в тип "System.Management.Automation.ScriptBlock".
строка:1 знак:50
+ ./exec-amod set1.json D:\HDR TEST\avengers\10bit HDR_med 2.hevc D:\HD ...
+                                                  ~~~~~~~
    + CategoryInfo          : InvalidData: (:) [exec-amod.ps1], ParameterBindingArgumentTransformationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,exec-amod.ps1
мне кажется для простоты надо разбить задачу, вначале формировать полный скрипт на запуск aMod со всеми параметрами
но писать его в файл, а уже потом решать вопрос с логированием

Добавлено через 10 минут
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PS C:\amod> ./exec-amod set1.json D:\TEST\out.hevc D:\TEST\in.avs
Write-Debug : Не удается привязать аргумент к параметру "Message", так как он имеет значение NULL.
C:\amod\exec-amod.ps1:27 знак:13
+ write-debug $arglist
+             ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Write-Debug], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.WriteDebugC
   ommand
 
Исключение при вызове "Start" с "0" аргументами: "Не удается найти указанный файл"
C:\amod\exec-amod.ps1:39 знак:1
+ $started = $process.Start()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : Win32Exception
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
01.06.2022, 21:22
А мне кажется, что:

а) Пора перестать создавать имена файлов с пробелами *
б) А если уж создал, то следить за тем, чтобы данные имена были всегда окавычены при помещении в ком. строку


---------
* Вместо пробелов человечество ещё в прошлом веке придумало нижнее подчеркивание '_'
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
01.06.2022, 22:32  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
а) Пора перестать создавать имена файлов с пробелами *
так во 2ом примере я уже без пробелов запускал
на 27 и 39 строки ругается
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
01.06.2022, 23:14
издержки ночного программирования; arg_list ( через underscore )
PowerShell
27
write-debug $arg_list
а с 39 строкой непонятно, что в ней плохого.
0
14 / 14 / 5
Регистрация: 13.07.2013
Сообщений: 230
02.06.2022, 15:49  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
а с 39 строкой непонятно, что в ней плохого.
ну уж я то точно не подскажу )

Code
1
2
3
4
5
6
7
PS C:\amod> ./exec-amod set1.json D:\TEST\out.hevc D:\TEST\in.avs
Исключение при вызове "Start" с "0" аргументами: "Не удается найти указанный файл"
C:\amod\exec-amod.ps1:39 знак:1
+ $started = $process.Start()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : Win32Exception
Добавлено через 5 часов 46 минут
Цитата Сообщение от volodin661 Посмотреть сообщение
а с 39 строкой непонятно, что в ней плохого.
ваш код не может запустить EXE, нужно указывать полный путь к исполнительному файлу

https://stackoverflow.com/ques... -find-file

PowerShell
1
2
3
$exe_file  = 'C:\amod\__amod.exe'
$log_file  = 'amod.log'
if ( Test-Path $log_file )
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
PS C:\amod> ./exec-amod set1.json D:\TEST\out.hevc D:\TEST\in.avs
--profile
main10
--level-idc
5.1
--crf
18
--preset
medium
--ref
4
--no-cutree
--deblock
-2:-2
--merange
57
--max-merge
3
--rd
3
--ctu
32
--early-skip
--bframes
6
--psy-rd
2.0
--frame-threads
2
--qcomp
0.68
--subme
3
--me
3
--rc-lookahead
20
--min-keyint
24
--keyint
240
--range
limited
--tu-inter-depth
3
--tu-intra-depth
3
--limit-tu
4
--no-strong-intra-smoothing
--rdoq-level
1
--no-sao
--no-sao-non-deblock
--rskip
1
--aud
--repeat-headers
--hrd
--output-depth
10
--hdr-opt
--colorprim
bt2020
--transfer
spte2084
--colormatrix
bt2020nc
--master-display
G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50)
--max-cll
=0,0
--chromaloc
2
--output
D:\TEST\out.hevc
D:\TEST\in.avs
 
PS C:\amod>
у меня как раз появилось предложение
по факту, не все кодирование нужно запускать через амод, иногда требуется использовать и avs2yuv

как бы так придумать, что бы еще можно было менять приложения для запуска
аргументы для вызова у них немного отличаются
в случае аМод

aMod.exe -- аргументы --output "D:\out.hevc" "D:\in.avs"

в случае avs2yuv

avs2yuv64.exe "D:\in.avs" -o - | x265(это тоже как аргумент меняется, но можно руками В ps1 править, требуется редко) - --аргументы -o "D:\out.hevc"

Добавлено через 7 минут
хотя пихать все в один скрпт геморно...
проще сделать отдельный exec-avs2yuv64.ps1, тупо потом чуть изменив формирование строгики параметров, приклеив к ней что нужно
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
02.06.2022, 16:08
а что придумывать, когда всё уже придумано ?
Для разных аргументов разный конфиг
Если меняется сам исполнитель ( exe ),
значит его тоже передавать параметром

Добавлено через 2 минуты
для замены одного или нескольких параметров 'налету', не трогая сам json-конфиг,
предусмотрел скрипт-блок ( см. строку 6 exec-amod.ps1)

Добавлено через 2 минуты
с настоящим amod.exe работает ? ( вполне допускаю, что какие-то параметры ему могли 'не понравится'; '=0,0' итп )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2022, 16:08

программы для работы с множеством
у меня есть код и я не знаю как реализовать функцию вывода на экран множественного числа, помогите пожалуйста #include <iostream> ...

Запись результатов работы программы в файл
как сделать чтобы результат записывался в файл? Program writefile; var x,y:real; st:string; f:text; begin assign(f,'xxx.txt'); ...

Запись результата работы программы в файл
Здравствуйте, необходимо записать результат работы программы в файл, но в зависимости от опции, файл должен перезаписываться, не совсем...

Работа с путями, проверка наличия файла, подсчет слов и запись в файл
Всем привет,есть такое задание,помогите выполнить на языке bash Разработать скрипт, который:  выводит имя текущего каталога; ...

Запись в текстовый лог-файл по сети
Есть скрипт Sub Remote(srv) On Error Resume Next Dim Controller, RemoteScript Set Controller =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru