0

我正在尝试在我的桌面上创建一个隐藏和显示文件夹的命令,这是我目前在 applescript 中的代码:

on run
    if "chflags hidden ~/Desktop/*" then
        do shell script "chflags nohidden ~/Desktop/*"
    else
        do shell script "chflags hidden ~/Desktop/*"
    end if
end run

你能找到问题并帮助吗 谢谢

4

2 回答 2

0

该命令似乎按预期工作。我用桌面上的一个文件夹对其进行了测试,所以

chflags hidden ~/Desktop/testDir/*
chflags nohidden ~/Desktop/testDir/*

做这项工作。

您的 if 语句不起作用。

if "chflags hidden ~/Desktop/*" then

那没有任何作用。即使您要添加缺少的“do shell 脚本”:

if (do shell script "chflags hidden ~/Desktop/testDir/*") then

这实际上会隐藏所有内容(此时您不想要)并且它不返回任何内容并生成 AppleScript-Error。

所以你必须寻找另一种方法来检查隐藏状态。

这是执行此操作的代码示例:

tell application "System Events"
    set filePath to file (((path to desktop) as text) & "myReferenceFile.txt")
end tell

set this_info to info for filePath
if visible of this_info is true then
    log "VISIBLE"
else
    log "INVISIBLE"
end if

如果您有参考文件,则可以使用该路径检查它是否隐藏。

于 2013-11-09T14:43:51.527 回答
0

您可以使用以下方式切换标志:

property hideFolders : true

if hideFolders then
    do shell script "find ~/Desktop/* -type d -maxdepth 1 -exec chflags hidden {} +"
    set hideFolders to false
else
    do shell script "find ~/Desktop/* -type d -maxdepth 1 -exec chflags nohidden {} +"
    set hideFolders to true
end if
于 2013-11-09T15:37:45.087 回答