У меня есть следующий Applescript, который переключает показ / скрытие скрытых файлов, и я хотел бы снова открыть пользовательские окна Finder, которые будут закрыты при повторном запуске Finder.

tell application "Finder" to quit
set OnOff to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if OnOff = "NO" or OnOff = "OFF" then
    set OnOffCommand to "defaults write com.apple.finder AppleShowAllFiles ON"
else
    set OnOffCommand to "defaults write com.apple.finder AppleShowAllFiles OFF"
end if
do shell script OnOffCommand
delay 1
tell application "Finder" to launch
tell application "Finder"
    try
        target of window 1
        make new Finder window to result
    on error
        make new Finder window to home
    end try
end tell

Может кто-то указать мне верное направление?

2 ответа2

1

Вы можете просто отключить закрытие окон при выходе из Finder:

defaults write com.apple.finder NSQuitAlwaysKeepsWindows -bool true

Я использую этот скрипт для переключения показа скрытых файлов:

do shell script "[[ $(defaults read com.apple.finder AppleShowAllFiles) = 1 ]] && b=false || b=true
defaults write com.apple.finder AppleShowAllFiles -bool $b"
tell application "Finder"
    quit
    delay 0.1 -- without this delay Finder was not made frontmost
    launch
    delay 0.5 -- without this delay there was sometimes a "connection is invalid" error
    activate -- make Finder frontmost
    reopen -- open a new default window if there are no open windows
end tell
0

Пытаться:

tell application "Finder"
    set windowTargets to target of Finder windows
    quit
end tell

set OnOff to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if OnOff = "NO" or OnOff = "OFF" then
    set OnOffCommand to "defaults write com.apple.finder AppleShowAllFiles ON"
else
    set OnOffCommand to "defaults write com.apple.finder AppleShowAllFiles OFF"
end if
do shell script OnOffCommand
delay 1

tell application "Finder" to launch
tell application "Finder"
    repeat with aTarget in windowTargets
        make new Finder window at aTarget
    end repeat
end tell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .