Bagaimana cara memeriksa apakah barang yang tidak terlihat terlihat?
0
Bagaimana cara saya memeriksa di AppleScript, jika objek yang tidak terlihat terlihat? Jika terlihat, lakukan: defaults write com.apple.finder AppleShowAllFiles 0
di tak terlihat, lakukan: defaults write com.apple.finder AppleShowAllFiles 1.
Itu harus satu skrip, jadi saya bisa mengubah yang terlihat dengan satu klik. Apakah itu mungkin dengan AppleScript?
Sebagai alternatif dari skrip grgarside, ini tidak mengharuskan Anda untuk me-restart Finder, cukup me-refresh jendela yang terbuka.
Dapat disimpan sebagai aplikasi atau di Automator, sebagai Layanan.
Saya memilikinya sebagai Layanan, dipicu pada Cmd ⌘ H dari Prefs Sistem> Keyboard> Pintasan> Layanan - yang mengharuskan saya untuk mengubah perintah kunci 'Sembunyikan Pencari' di ... Pintasan> Pintasan Aplikasi menjadi sesuatu selain dari bawaan.
Untuk menambahkan sebagai Layanan, luncurkan Automator kemudian File menu> New.
Pilih Layanan dalam dialog lalu seret Jalankan Applescript ke jendela Automator baru.
Salin / rekatkan skrip di dalam on run- ganti (* Skrip Anda ada di sini *) & Simpan. Ini hanya membutuhkan parameter default untuk yang lainnya.
Dalam System Prefs> Keyboard> Shortcuts> Services, itu akan ditambahkan sebagai baris terakhir. Tetapkan perintah kunci pemicu yang Anda suka.
Jika Anda menggunakan Cmd ⌘ H yang sama dengan saya, Anda harus mengubah Sembunyikan Finder ke sesuatu yang lain - Saya hanya menggunakan pintasan sampah karena saya tidak pernah membutuhkan perintah itu ...
set newHiddenVisiblesState to "YES"tryset oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"if oldHiddenVisiblesState isin{"1","YES"}thenset newHiddenVisiblesState to "NO"endifendtrydo shell script "defaults write com.apple.finder AppleShowAllFiles "& newHiddenVisiblesState
tell application "Finder"set theWindows to every Finder window
repeat with i from1 to number of items in theWindowsset this_item to item i of theWindowsset theView to current view of this_itemif theView is list view thenset current view of this_item to icon viewelseset current view of this_item to list viewendifset current view of this_item to theViewend repeatend tell
Script itu sendiri membaca keadaan saat ini dari flag yang tidak terlihat (kurang elegan dari versi grgarside tetapi sama efektifnya;) kemudian beralih setiap jendela yang terbuka ke jenis tampilan lain - daftar, ikon dll lalu kembali lagi.
Sunting: Hanya menyegarkan windows tidak lagi berfungsi di El Capitan, Anda sekarang harus me-restart Finder.
Versi baru untuk El Capitan
set newHiddenVisiblesState to "YES"tryset oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"if oldHiddenVisiblesState isin{"1","YES"}thenset newHiddenVisiblesState to "NO"endifendtrydo shell script "defaults write com.apple.finder AppleShowAllFiles "& newHiddenVisiblesState &"; killall Finder"
Terima kasih! Berhasil. Tapi bisakah Anda menjelaskan, apa yang dilakukan skrip, latar belakang dekat dari mode operasi? Dan bagaimana saya bisa menambahkan layanan dengan pintasan?
user121028
Saya mengubah jawabannya ...
Tetsujin
0
Ini menetapkan nilai b menjadi benar atau salah tergantung pada nilai AppleShowAllFiles saat ini:
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.2-- without this delay there was a "connection is invalid" error
reopen -- open a newdefault window
activate -- make Finder frontmostend tell
Ini menetapkan nilai b menjadi benar atau salah tergantung pada nilai AppleShowAllFiles saat ini:
Karena itu, Anda dapat membuat skrip seperti ini:
Semua kredit untuk Lauri dalam jawaban ini di Stack Overflow
sumber