如何使用 Automator 更改 Finder 中空資料夾的外觀?

如何使用 Automator 更改 Finder 中空資料夾的外觀?

我正在嘗試使用 Apple Automator 來標記層次結構中的空資料夾。基本上,我從一個具有空資料夾層次結構的專案開始,並在工作時填充它們。我想要一個工作流程來標記所有不包含文件的空資料夾(灰色),而且它們的後代也不包含文件。

換句話說,當我創建空專案時,所有資料夾都應該是灰色的,因為任何地方都沒有“文件”,只有空資料夾。但是,一旦我將文件放置在某個位置,它的父文件和所有祖父母將不再被標記為灰色。

我以為我找到我需要的東西如何更改Finder中空資料夾的外觀?但是,它標記的是空資料夾。在我的專案中,只有最後的後代才會呈現灰色,因為所有父資料夾都包含資料夾,因此不為空。

以下是我在 Automator 的 /bin/bash shell 腳本中執行的程式碼:

find "$@" -type d -empty

然後我將其傳遞給“標籤查找器專案”以將結果變成灰色。

這是我在測試資料夾上運行時得到的結果:

  • 測試資料夾(非灰色)
    • 資料夾一(灰色)
    • 資料夾二(非灰色)
      • 資料夾A(灰色)
    • 資料夾三(非灰色)
      • 測試.txt
    • 資料夾四(非灰色)
      • 資料夾A(非灰色)
        • 測試.txt

這是我正在尋找的結果:

  • 測試資料夾(非灰色)
    • 資料夾一(灰色)
    • 資料夾二(灰色)
      • 資料夾A(灰色)
    • 資料夾三(非灰色)
      • 測試.txt
    • 資料夾四(非灰色)
      • 資料夾A(非灰色)
        • 測試.txt

任何幫助將不勝感激!

哦,另外,我相信我可以從 Hazel 運行工作流程。如果您有更好的方法讓它偶爾自動運行,我也很想知道。

謝謝。

編輯:剛剛意識到 .ds_store 檔案(我假設)導致資料夾也不顯示為空,例如,如果我刪除資料夾中的最後一個檔案。

答案1

我嘗試了一些案例,似乎它可以滿足您的需求:

shell腳本,,usr/bin/perl傳遞輸入as arguments

自動化服務

use File::Find;

find({ wanted => \&find_files, no_chdir => 1 }, @ARGV);

sub find_files
{
    if (-f $_)
    {
        ($file) = $_ =~ /.*\/(.*)$/;
        push (@all_files, $_) if ($file ne ".DS_Store");
    }
    else
    {
        push (@all_folders, $_);
    }
}

sub osascript($) { system 'osascript', map { ('-e', $_) } split(/\r/, $_[0]); } 

foreach(@all_files)
{
    @paths = split(/\//, $_);
    for $i (0..$#paths-1)
    {
        if ($i == 0)
        {
            $x = "$paths[$i]";
        }
        else
        {
            $x = "$last[$i-1]/$paths[$i]";
        }
        push(@last, $x);
        $temp{$x} ++;
    }
    @last = ();
 }

@not_gray_folders = keys %temp;
foreach(@all_folders)
{
    $folder = $_; $flag = 0;
    foreach(@not_gray_folders)
    {
        if ($folder eq $_)
        {
            $flag = 1;
        }
    }
    if (!$flag)
    {
        $label = 7;
    }
    else
    {
        $label = 0;
    }
    &osascript ("tell application \"Finder\" to set label index of alias POSIX file \"$folder\" to $label");
}

相關內容