我使用Hedge传输在我的佳能5D Mark III上拍摄的魔灯视频文件。
在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)的尝试。
我鼓励您研究代码并在您自己的答案中发布对它的解释,以便其他人也可以受益。
为了帮助进行分析,请考虑以下资源:
-
官方的Windows PowerShell入门页面和PowerShellCore的等效页面。
-
本系列文章是对 PowerShell 的精彩、面向配方的介绍。
-
http://hyperpolyglot.org/shell 以简洁的表格形式将类似POSIX的shell(如
bash
)的语法与cmd.exe
和PowerShell的语法并置。
代码的 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环境。但天鹅座对我来说不是一个选择)。
将 bash 脚本转换为 Windows 脚本
将 xargs Bash 命令转换为 PowerShell?
我有一个简单的 Bash 命令来自动调整一些图像的大小 一个使用ImageMagick的低流量网站 - 我想将其转换为 一个PowerShell命令,所以我不必在我的平台上安装Cygwin。 网络服务器。
将 xargs Bash 命令转换为 PowerShell?
如前所述,有付费的途径/甚至是在线途径,他们可能成为一条途径。
但是,你真的应该多读一些关于如何做具体的事情,比如......
- 创建文件和文件夹
- 访问/读取文件,导入文件,过滤文件
- 循环
- 运算符(比较和分配)
- 导航文件系统/PSDrive