Batch

在批處理中使用 forfiles 清除文件並從任務中執行該批處理

  • April 14, 2011

我在批處理文件中有以下內容,如果我手動執行它可以很好地工作,但是當我告訴任務調度程序執行它時會失敗。

forfiles -s -m *.bak -d -4 -c “cmd /c del @path”

此批處理文件將刪除與批處理相同目錄中超過 4 天的所有 BAK 文件。我無法讓 forfiles 從另一個目錄工作,因此批處理文件只能在與我的 sql 備份相同的目錄中工作。如果有人知道如何編輯我的批處理文件以允許我能夠從我的通用批處理文件目錄而不是我的 sql 備份文件夾中呼叫它,那麼該資訊將不勝感激。

即使我在配置計劃任務時選中“以最高權限執行”複選框,也沒有任何變化。順便說一句,我的任務僅在使用者登錄並且使用者帳戶實際上是管理員並且 UAC 在這台機器上完全禁用時執行。所以我不確定這怎麼可能是一個與權限相關的問題,但我的直覺告訴我這是一個原因。當任務調度程序呼叫它執行時,我希望能夠編輯並包含批處理中顯示的錯誤消息。我需要編輯批處理,以便在我看到錯誤詳細資訊之前它不會關閉,並且目前保存該文件的機器正在被另一個開發人員使用,因此我稍後將不得不收集這些附加資訊。

希望有人能幫忙!這台機器執行 sql express,因此不能使用維護計劃,所以這是我的解決方法。如果有更簡單的方法來做我想做的事情,請告訴我。

您是否嘗試使用/p搜尋不同的路徑?

forfiles /p "d:\path\to\sql\backups" /s /m *.bak /d -4 /c "cmd /c del @path"

此外,將執行任務的使用者帳戶與 SQL 備份文件夾上的安全設置進行比較。

引用自:https://serverfault.com/questions/259805