前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hazel轻松管理文件-安装包自动新建同名文件夹并且移动

Hazel轻松管理文件-安装包自动新建同名文件夹并且移动

作者头像
茶半香初
发布2021-11-26 14:17:03
9940
发布2021-11-26 14:17:03
举报
文章被收录于专栏:程序员那点事

首先贴图,我平时使用的一些规则,然后说一些平常有用的一些规则,及使用场景。

  1. 下载目录
    1. 最新下载文件打标签:每次下载的文件都打上tag,标记为最近下载的文件,这样可以在Finder里通过标签直接查看最新下载的文件
    2. 超过4周的打标签-红色:下载成功,并且一直放在下载目录超过4周,则打上tag,后续方便自己同意处理这些超过4周还未处理的文件
    3. 安装包移动到APP-建新文件夹:新下载的APP安装包,我习惯把所有的安装包放置在某一个目录下(~/app),然后新建一个同名的目录,放置新下载的安装包和关于该软件的一些配置或插件
    4. Alfred-工作流移动:下载的Alfred工作流,自动移动到相应的目录(~/app/alfred)
    5. 删除2个月前的下载文件:如果在下载目录超过2个月都没有处理,自动删除
    6. 电影、音乐、图片:自动移动到相应目录

以上几个规则,都比较简单,简单说说规则3,规则3是配合Mac自带的Automator实现,实现效果如下(折腾半天也没有弄好视频):

https://v.youku.com/v_show/id_XNDQzNjY5NDAxNg==.html?spm=a2ha1.12701310.app.5~5!2~5!3~5~5~5!2~5~5~5~A

以下是具体实现步骤:

步骤一:使用Automator创建一个工作流

选择工作流类型

1

2

3

重点是AppleScript脚本,主要通过脚本实现新建同名文件夹,并且移动APP安装包到新建的目录下,具体实现如下:

代码语言:javascript
复制
on run {input, parameters}
	if (count of input) < 3 then return
	--获取过来时间
	set filterTime to (item -2 of input) as number
	--获取目标目录
	set targetFolder to (item -1 of input)
	--待处理文件
	set input to items 1 through -3 of input
	set output to {}
	repeat with temp in the input -- 循环遍历没改安装包文件
		set anItem to temp as text
		set oneminutes to (current date) - filterTime * minutes
		tell application "System Events" to tell disk item anItem
			set relTargetPath to targetFolder
			--指定目录
			set theContainer to targetFolder
			set {theName, theExtension, theFileDate} to {name, name extension, creation date}
		end tell
		--过滤创建时间
		if theFileDate > oneminutes then
			if theExtension is in {"app", "dmg"} then
				--软件名称
				set theName to text 1 thru -((count theExtension) + 2) of theName -- the name part 
				--判断是否存在同名目录
				tell application "Finder" to set targetPathFileExists to exists folder ((targetFolder as text) & theName)
				--display dialog ((targetFolder & theName) as text)
				--display dialog ((targetPathFileExists) as text)
				if targetPathFileExists is true then
					set tempVar to display dialog "文件夹[" & theName & "] 已存在,是移动" buttons {"是", "否"}
					set theButtonPressed to button returned of tempVar
					if theButtonPressed = "是" then
						tell application "Finder"
							move temp to (targetFolder as text) & theName
							display notification "成功移动到:" & POSIX path of ((targetFolder as text) & theName) with title ("文件: " & theName as text)
						end tell
					end if
				else
					tell application "Finder"
						make new folder at folder theContainer with properties {name:theName}
						set end of output to result as alias
						move temp to result
						display notification "成功新建目录" & theName & "并且移动目录" & POSIX path of ((targetFolder as text) & theName) with title ("文件: " & theName as text)
					end tell
				end if
			end if
		end if
	end repeat
	return output -- or output 
end run

变量:

filterTime: 安装包创建时间过滤,单位为分钟;例如:1,代表最近1分钟内的安装包才会进行移动

targetFolder: 安装包移动的目录路径,会在该路劲下创建同名目录

步骤二:创建Hazel规则

这里规则很简单,根据下载的文件名称过滤,如果满足dmg结尾,说明是APP安装包,然后触发Automator 工作流,进行同名文件新建和安装包移动

Automator CICD Consul Consul-template docker docker-compose elasticsearch gitlab gitlab-runner harbor Hazel hybris java kubernetes mac macx高效率 nginx rancher spring boot spring cloud swarm 分布式 序列号 有规则

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档