繁体   English   中英

转换Windows的OS X Bash脚本

[英]Translating OS X Bash Script for Windows

我使用对冲传输佳能5D Mark III上拍摄的Magic Lantern视频文件。

在OS X上,我可以使用Automator设置bash脚本,执行mlv_dump,以将文件从MLV传输到cDNG序列中。

我当前使用的脚本是:

cd "$(dirname "$1")"
for f in "$@"; do
    if [[ -f $f ]]; then
        filename=${f##*/};
        folder=${filename%.*}
        mkdir "${folder}";

        ~/mlv_dump --dng $f -o ${folder}/${folder}_;
    fi
done

可以轻松转换为Windows等效语言吗?

谢谢,
汤玛士

与在编程语言之间进行任何翻译一样,有(a)一种尽可能可行的方法,与(b)一种相反的方法相反,该方法不是立即显而易见的,而是目标灵语言方法。
从长远来看,(b)总是可取的。

使用PowerShell ,因为它是“命令提示符”( cmd.exe )及其批处理文件的远超继承者。
以下代码是在PowerShell (v3 +语法)中尝试(b)的代码。

我鼓励您学习代码并在自己的答案中发布对代码的解释,以便其他人也可以从中受益。

为了帮助进行分析,请考虑以下资源

PowerShell惯用语代码翻译:

param(
  [Parameter(Mandatory, ValueFromRemainingArguments)]
  [System.IO.FileInfo[]] $LiteralPath
)

$outputBaseFolder = Split-Path -Parent $LiteralPath[0].FullName
foreach ($f in $LiteralPath) {
  if ($f.exists) {
    $outputFolder = Join-Path $outputBaseFolder $f.BaseName
    New-Item -ItemType Directory $outputFolder
    & "$HOME/mlv_dump" --dng $f.FullName -o "$outputFolder/$($f.BaseName)_"
  } else {
    Write-Warning "Item doesn't exist or is not a file: $($f.FullName)"
  }
}

容易,是针对个人技能的相对答案,正如其他人所评论的那样,没有开箱即用的东西/工具可以使用或购买。 所有这些都是手工工作,使用指针和其他尝试查看可以收集到的内容来完成用例的人。

例如,在您的区块中...

    filename=${f##*/};
    folder=${filename%.*}
    mkdir "${folder}";

...很容易翻译成...

    $filename='PathToFileName'
    $foldername='PathToFolder'
    mkdir 'FolderName'

现在,这种翻译真的很简单,显然还不完整。 使用指向的资源和PowerShell内置帮助文件以及这些示例,您必须弄清楚这一点。

这个论坛上有几篇关于转换主题的文章,以及其他人如何达成共识。

例如,下面将重点介绍完成X或Y所需遍历的工作。

将简单的Bash脚本转换为PowerShell?

我希望将此bash代码移植到PowerShell。 任何人都可以在此方面了解一些PowerShell吗?

将简单的Bash脚本转换为PowerShell?

将bash脚本转换为Windows脚本

我有以下Unix shell脚本。 我想将其转换为Windows .bat文件(我知道我可以使用Cygwin而不是使其适应Windows环境。但是Cygwin不是我的选择)。

将bash脚本转换为Windows脚本

将xargs Bash命令转换为PowerShell?

我有一个简单的Bash命令,可以使用ImageMagick在低流量的网站上自动调整一些图像的大小-我想将其转换为PowerShell命令,因此不必在我的Web服务器上安装Cygwin。

将xargs Bash命令转换为PowerShell?

如前所述,有支付途径的费用,甚至是可能成为途径的在线费用。

但是,您实际上应该多读一些有关如何做特定事情的知识,例如:

  • 创建文件和文件夹
  • 访问/读取文件,导入文件,过滤文件
  • 循环
  • 运营商(比较和分配)
  • 浏览文件系统/ PSDrive

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM