![当我通过 AppleScript 从垃圾箱“放回”文件时,如何避免密码提示?](https://linux22.com/image/1322590/%E5%BD%93%E6%88%91%E9%80%9A%E8%BF%87%20AppleScript%20%E4%BB%8E%E5%9E%83%E5%9C%BE%E7%AE%B1%E2%80%9C%E6%94%BE%E5%9B%9E%E2%80%9D%E6%96%87%E4%BB%B6%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%AF%86%E7%A0%81%E6%8F%90%E7%A4%BA%EF%BC%9F.png)
我无意中将 4,000 多个文件移到了废纸篓,我想将这些文件移回原来的位置。虽然 Lion 支持此功能(通过 Finder 的“放回”命令),但它只允许您一次放回一个文件。
我找到了一个 AppleScript 脚本,可以自动将文件逐个放回原处。我运行了整整一夜,它基本成功了,但垃圾箱里还剩下 1,700 个文件。
问题是,剩余的文件需要我输入密码才能放回。我相信这些文件是由其他所有者创建的。
我的问题是我该如何解决这个问题?
有没有办法进入超级用户模式,让我不必为每个要取消删除的文件输入密码?
任何帮助是极大的赞赏。
以下是 AppleScript:
repeat 4173 times --or as many files you have
tell application "Finder" to open trash --open the trash folder
tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
delay 0.2 -- adjust delay as needed
key code 125 --move down to get focus on a file
key down command --hold command key
delay 0.2 -- adjust delay as needed
key code 51 --hit delete
key up command --release command
end tell
end tell
delay 0.2 -- adjust delay as needed
tell application "Finder" to close every window --close everything for the next cycle
end repeat
答案1
您还可以模拟输入密码。keystroke "password" & return
当不显示密码对话框时,该部分应该是无害的。我只用几个文件测试了这个脚本,所以可能仍然需要修改。
tell application "Finder"
repeat 4 times
close windows
open trash
activate
tell application "System Events"
key code 125
key code 51 using command down
delay 0.2
keystroke "password" & return
delay 0.2
end tell
end repeat
close windows
end tell
我也尝试使用 以 root 身份打开 Finder sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
,但放回操作似乎对任何文件都不可用。