gpt4 book ai didi

shell - 将 cmd ffmpeg 脚本转换为 shell

转载 作者:行者123 更新时间:2023-12-04 23:35:00 25 4
gpt4 key购买 nike

它的 cmd 代码非常简单,但我不知道它应该如何在我的带有 shell 的 nas 上工作

请帮助转换脚本:

@echo off
setlocal enableextensions enabledelayedexpansion

设置
set sWorkFolder=d:\workfolder
set sSourceFolder=%sWorkFolder%\waiting-to-convert
set sDestFolder=%sWorkFolder%\done
set sBackupFolder=%sWorkFolder%\trash
set sPath2ffmpeg=%sWorkFolder%\ffmpeg\bin\ffmpeg.exe

开始循环
for /r "%sSourceFolder%" %%i in (*.mp4) do call :action "%%i"

endlocal
exit /b

:action
setlocal enableextensions enabledelayedexpansion

set "sSourcePath=%~dp1"
set "sDestPath=%sDestFolder%!sSourcePath:%sSourceFolder%=!"
if not exist "%sDestPath%." md "%sDestPath%"
set "sDestFile=%sDestPath%%~n1.720p%~x1"

"%sPath2ffmpeg%" -i "%~f1" -vcodec h264 -vf "scale=trunc(oh*a/2)*2:min(720p\,ih)" -b:v 2000k -preset faster -acodec copy -y "%sDestFile%"

set "sBackupPath=%sBackupFolder%!sSourcePath:%sSourceFolder%=!"
if not exist "%sBackupPath%." md "%sBackupPath%"

move /y "%~1" "%sBackupPath%"

endlocal
exit /b

最佳答案

Shell 脚本通常为 echo off .您可以使用 set -vx 获得调试输出并使用 set +vx 将其关闭.这两个可以放在文件中的任何位置(最好与其他行分开)。 (正如您将在下面注意到的那样,set 在 shell 中与 cmd 非常不同)。

脚本的第一行应该是

#!/bin/bash

保存文件后,需要执行 unix/linux 命令
chmod 755 myScript.sh

将其标记为可执行。

如果您在 windows 上创建文件,或使用 windows ftp 或 windows 任何东西,一旦您有文件到 *nix,请执行
dos2unix myScript.sh
set var=valueDestPath=/path/to/dir 完成.利用
if [ ! -d "$DestPath" ] ; then mkdir "$DestPath'; fi

所有变量都被引用为 "$var" .
move缩短为 mv .咨询 man mv查找 /y 的等效选项.
for file in *.mp4 ; do cmd "$file" ; done

我不明白你的 do :action在 for 循环中,所以我替换了 cmd表示“做一些工作”。您可以调用外部命令(多个),具有您调用的已定义函数或具有多 cmd 管道,例如
cmd1 file | filter_cmd | filter2_cmd > outfile

因为您的代码中有标签(即 :action ),所以您应该知道只有 csh允许 goto像分支(你不想在 csh 中开始编码!)。你必须重构你的代码才能在 for 内工作。和 while循环,依赖 breakcontinue更改循环内的处理。

转换这么多,然后使用 http://shellcheck.net对于错误。使用更正的代码发布一个新问题,并显示确切的错误消息。

IHTH

关于shell - 将 cmd ffmpeg 脚本转换为 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com