我使用Hedge传输在我的佳能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等效的吗?
谢谢, 托马斯
简单,是一个特定于个人技能的相对答案,正如其他人评论的那样,没有开箱即用的东西/工具可以使用或购买来做到这一点。这是所有手动工作,使用指针和其他人试图看到你可以收集到什么来完成你的用例。
例如,在你的块中...
filename=${f##*/};
folder=${filename%.*}
mkdir "${folder}";
...很容易翻译成......
$filename='PathToFileName'
$foldername='PathToFolder'
mkdir 'FolderName'
现在,这种翻译真的很简单,显然不完整。您需要弄清楚这一点,使用指向的资源和PowerShell内置帮助文件以及这些示例。
在这个关于这个转换主题的论坛上有几个帖子,以及其他人如何达成共识哦,如果有什么可以做的话。
例如,下面将重点介绍完成X或Y所需的遍历工作。
将简单的Bash脚本转换为PowerShell?
我希望将此bash代码移植到PowerShell。任何人都可以在这个上发布一些PowerShell吗?
Convert simple Bash script to PowerShell?
将bash脚本转换为Windows脚本
我有以下Unix shell脚本。我想将其转换为Windows .bat文件(我知道我可以使用Cygwin而不是将其适应Windows环境。但Cygwin对我来说不是一个选项)。
Convert bash script into Windows script
将xargs Bash命令转换为PowerShell?
我有一个简单的Bash命令,可以使用ImageMagick在流量较低的网站上自动调整某些图像的大小 - 我想将其转换为PowerShell命令,因此我不必在我的网络服务器上安装Cygwin。
如上所述,有可能成为途径的途径/甚至是在线人员。
但是,你应该多读一些关于如何做特定事情的事情,比如......
与编程语言之间的任何翻译一样,(a)是一种尽可能按字面意义的方法,与(b)形成鲜明对比,一种不是立即显而易见的,而是在目标精神中 - 语言方法。 (b)从长远来看总是优先的。
使用PowerShell,因为它是“命令提示符”(cmd.exe
)及其批处理文件的继承者。
下面的代码是(b)在PowerShell(v3 +语法)中的尝试。
我鼓励你研究这些代码并在你自己的答案中发布一个解释,以便其他人也可以从中受益。
要帮助进行分析,请考虑以下资源:
bash
)的语法与cmd.exe
和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)"
}
}