【发布时间】:2016-08-06 19:56:06
【问题描述】:
我的机器上有大量照片,我想解析我为每个文件创建的标准命名约定,然后将其通过管道传递给touch 命令。
例如,我有这些文件:
2016-08-06-00h28m34.jpg
2016-08-06-00h28m35.jpg
2016-08-06-00h28m36.jpg
我想生成(然后运行)以下命令:
touch -t 201608060028.34 2016-08-06-00h28m34.jpg
touch -t 201608060028.35 2016-08-06-00h28m35.jpg
touch -t 201608060028.36 2016-08-06-00h28m36.jpg
我可以在文本编辑器中手动执行此操作,但由于每个目录中的文件数量众多,因此非常耗时。我也可以在 C# 中执行它并在我的 LAN 上运行它,但这似乎有点矫枉过正。哎呀,我什至可以在 SQL Server 中执行此操作,但是……它是 OS X,我确信我缺少一个简单的命令行。
我查看了Windows version of Unix touch command to modify a file's modification date from filename part 和Split Filename Up to Define Variables,但我似乎无法弄清楚如何在脚本的秒部分添加句点,而且我不想添加批处理脚本到我拥有的数百个文件夹中的每一个。
我们将不胜感激。
【问题讨论】:
-
你有点要求别人为你写一个脚本。他们为什么要这样做?顺便说一句,我会用 python 来做,因为这是我的首选语言,不仅仅是 shell 脚本,而且是跨平台的。当你说你可以在 SQL Server 中做到这一点时,你不是在说实话:)
-
我可以在 SQL Server 中使用 xp_cmdshell 来完成,所以,是的。我也可以在 PowerShell 中执行此操作,但同样,OS X 平台错误。Mark 的答案正是我想要的。非常感谢您的反馈!
-
但是 SQL Server 不是只能在 Windows 下运行吗?
-
是的,SQL Server(目前)只能在 Windows 下运行。我在与我的 MacBook Pro 相同的网络上有一台 Windows 机器。您一定错过了我的问题中的“我也可以在 C# 中执行它并在我的 LAN 上运行它”这句话。没关系。马克回答了这个问题。这种题外话是没有意义的。
标签: macos terminal filenames command-line-arguments