2013-11-09 140 views
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 

u能請查找問題,並幫助 謝謝

回答

0

該命令似乎按預期工作。我用我的桌面上的一個文件夾測試它,所以

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

完成這項工作。

您的if語句不起作用。

if "chflags hidden ~/Desktop/*" then 

那什麼都不做。即使你想補充缺少的「做shell腳本」:

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

這實際上會掩蓋一切(你不想在這一點),它沒有返回,併產生一個AppleScript的錯誤。

所以你必須尋找另一種方法來檢查隱藏狀態。

下面是一個代碼示例這樣做:

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 

如果你有一個參考文件,你可以使用這條道路,以檢查它是否隱藏或不。

+1

THX的傢伙:d要去看看他們的工作! :d – user2826998

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