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

次のような方法でフラグを切り替えることができます。

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 に答える
0

コマンドは期待どおりに機能するようです。デスクトップ上のフォルダでテストしたので、

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

仕事をします。

あなたのifステートメントは機能しません。

if "chflags hidden ~/Desktop/*" then

それは何もしません。不足している「do shell script」を追加しても、次のようになります。

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

参照ファイルがある場合は、そのパスを使用して非表示かどうかを確認できます。

于 2013-11-09T14:43:51.527 に答える