Windows
腳本/批處理如果目錄是某個年齡,則執行 .exe
我目前有一個批處理文件,它查看文件夾是否存在,如果存在,它會在其中執行解除安裝 exe,然後使用 msi 安裝程序。我需要更改它或將其轉換為 powershell,以便它在繼續之前首先檢查文件夾的年齡。我認為我會使用的年齡將超過 12 個月。我一直遇到的一個問題是我需要使用萬用字元來檢查目錄是否存在,因為它在每台電腦上的名稱末尾略有不同。這是我到目前為止所擁有的,與年齡無關。
@echo off IF exist C:\ProgramData\bomgar* ( goto Uninstall ) ELSE ( goto Install ) :Uninstall cd C:\ProgramData\bomgar* remove.exe :Install msiexec /i "C:\pathtomsi" :End Echo Test Complete
任何幫助或建議將不勝感激。
在 Powershell 中,您可以使用相同的萬用字元。您還可以通過添加負 12 個月來完成日期比較:
$folders = Get-Item "C:\ProgramData\bomgar*" | Where-Object { $_.PSIsContainer -and $_.CreationTime -le (Get-Date).AddMonths(-12) }
如果返回結果則解除安裝,否則安裝:
If ($folders) { Foreach ($folder In $folders) { "UNINSTALL $($folder.FullName) - $($folder.CreationTime)" } } Else { "INSTALL $($folder.FullName) - $($folder.CreationTime)" }
**編輯:**我的大於或等於 (
-ge
) 可能存在邏輯錯誤。嘗試將其更改為-le
. 我還添加了輸出行,因此可以看到它正在選擇的文件夾 - 只是為了幫助您調試。