Работа с bat файлом



  • Добрый день. Не могу разобраться с bat файлом.
    Сделал следующий bat файл, чтобы узнать продолжительность видео.
    echo off
    for /f "tokens=1,2 delims=x" %%i in ('"ffprobe -v error -select_streams v:0 -show_entries stream=Duration,Width -of csv=s=x:p=0 D:\1\93139515398.mp4"') do set width=%%i &set Dur=%%j
    echo %width%
    echo %dur% > D:\1\BBBB.txt

    Когда запускаю самостоятельно - всё записывает в файл "BBBB.txt" корректно (выдает секунды)

    Когда делаю "Запуск процесса" из BAS - выдает в файле "BBBB.txt" ECHO is off.

    В чем причина? Подскажите, пожалуйста..



  • @poison008 я не спец по bat и шелл,
    но разве вы в 1 строке(echo off) не отключили команду echo?
    а потом пытаетесь вывести отключенной командой в файл

    p.s. я почти не знаю bat и шелл. чисто логическое рассуждение



  • @poison008 said in Работа с bat файлом:

    Добрый день. Не могу разобраться с bat файлом.
    Сделал следующий bat файл, чтобы узнать продолжительность видео.
    echo off
    for /f "tokens=1,2 delims=x" %%i in ('"ffprobe -v error -select_streams v:0 -show_entries stream=Duration,Width -of csv=s=x:p=0 D:\1\93139515398.mp4"') do set width=%%i &set Dur=%%j
    echo %width%
    echo %dur% > D:\1\BBBB.txt

    Когда запускаю самостоятельно - всё записывает в файл "BBBB.txt" корректно (выдает секунды)

    Когда делаю "Запуск процесса" из BAS - выдает в файле "BBBB.txt" ECHO is off.

    В чем причина? Подскажите, пожалуйста..

    Пример с cyberforum.ru ? )

    Когда вы используете действие "Запустить Процесс" BAS сам создаёт bat файл с кодом указанным в действии и выполняет его. Но выполняет он с диска, на котором находится сам скрипт, проверить ваш код я не могу, по этому попробуйте проверить код с переключением на диск D:

    echo off
    D:
    for /f "tokens=1,2 delims=x" %%i in ('"ffprobe -v error -select_streams v:0 -show_entries stream=Duration,Width -of csv=s=x:p=0 D:\1\93139515398.mp4"') do set width=%%i &set Dur=%%j
    echo %width%
    echo %dur% > D:\1\BBBB.txt
    


  • @Fox Решение оттуда, да) Попробовал - всё то же самое. По какой-то причине переменную %dur% не выводит при запуске процесса из BAS. Если сам выполняю команду - всё в порядке. Ничего не понимаю))



  • This post is deleted!


  • @tet-vivi said in Работа с bat файлом:

    @poison008 я не спец по bat и шелл,
    но разве вы в 1 строке(echo off) не отключили команду echo?
    а потом пытаетесь вывести отключенной командой в файл

    p.s. я почти не знаю bat и шелл. чисто логическое рассуждение

    Я тоже в этом не шарю, но сама команда вне BAS работает, поэтому дело не в этом)) В файл всё записывается при запуске батника вручную..А при запуске процесса из BAS нет. Он просто меняет итог на Echo is on



  • This post is deleted!


  • This post is deleted!


  • @Bigma said in Работа с bat файлом:

    echo %Dur% > D:\1\BBBB.txt

    Не работает. Там 2 переменные, 1 можно удалить, но это ничего не меняет. Вторую я для себя оставил, но он даже одну не выводит. Обратите внимание, что bat файл вне BAS работает.



  • This post is deleted!


  • @poison008 said in Работа с bat файлом:

    @Bigma said in Работа с bat файлом:

    echo %Dur% > D:\1\BBBB.txt

    Не работает. Там 2 переменные, 1 можно удалить, но это ничего не меняет. Вторую я для себя оставил, но он даже одну не выводит. Обратите внимание, что bat файл вне BAS работает.

    отключите echo off и посмотрите какие ошибки выводит скрипт



  • This post is deleted!


  • Короче "рабочая папка" укажи где ffprobe лежит, и все будет работать.
    У меня сработало.Screen Shot 2020-05-16 at 08.22.46.png

    ffprobe положил в корень диска С

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

    for /f "tokens=1,2 delims=x" %%i in ('"c:\ffprobe -v error -select_streams v:0 -show_entries stream=Duration,Width -of csv=s=x:p=0 C:\test.y4m"') do set width=%%i &set Dur=%%j
    


  • @Bigma said in Работа с bat файлом:

    c:\ffprobe

    Спасибо большое! Указал путь и всё заработало)


Log in to reply