發表文章

目前顯示的是有「Batch」標籤的文章

利用批次指令清理檔案及資料夾

利用批次指令清理檔案及資料夾 利用forfile刪除指定路徑下的所有符合條件的檔案 forfiles /p "D:\Dir1\Dir2" /s /m *.* /d -14 /c "cmd /c del /q @path"   forfile指令參數說明 : forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d <Date>] [/l] [/b] /p <Path> :指定要搜索的根目錄。 /m <SearchMask> :指定要搜索的檔案的檔名模式。例如, *.txt 。 /s :包括子目錄中的所有檔案。 /c "<Command>" :指定要對每個找到的檔案執行的命令。使用 @file 代表檔案名稱, @path 代表檔案的完整路徑, @relpath 代表相對於指定根目錄的檔案路徑, @isdir 為 TRUE 表示找到的是資料夾。 /d <Date> :選擇最後修改日期在指定日期之前的檔案。日期格式為 MM/dd/yyyy 或 dd.MM.yyyy 。 /l :以小寫形式顯示或比較日期和時間。 /b :使用簡單的檔案名稱而不是完整的路徑。 刪除指定路徑下所有空資料夾 for /f "delims=" %%d in ('dir /ad /s /b "D:\Dir1\Dir2" ^| sort /r') do rd "%%d"      

[批次程式][BAT]顯示資料夾檔案結構(適用網路路徑)

  tree /f 目錄名稱 > dirs.txt

[Batch]利用ping確認網路是否有通

batch file code: @ECHO OFF Ping 168.95.1.1 -n 1 -w 1000 > nul SET CHK_NET_STATUS=N if errorlevel 1 ( echo Not connected SET CHK_NET_STATUS=N ) else ( echo success SET CHK_NET_STATUS=Y ) echo %CHK_NET_STATUS% pause reference web: http://stackoverflow.com/questions/6357515/batch-files-using-ping-to-test-network-connectivity

MS Batch 建立當天日期的資料夾

使用 @echo off REM 取得日期,並刪除/ FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO SET today=%%a%%b%%c%%d REM 依系統變數windir判斷目前作業系統類別(決定星期是在日期前面還是日期後面),再拆出年月日 REM /I: 比對字串不區分大小寫 if /I %windir%==C:\WINDOWS set bkdate=%today:~0,8% if /I %windir%==C:\WINNT set bkdate=%today:~3,10% mkdir %bkdate%

ASP網頁無法正常執行批次程式或VBS程式

圖片
有時因為一些特殊需求,不得不讓ASP網頁直接執行批次程式或VBS程式,雖然這不是個建議的解法,但在有條件下它卻是個可以快速解決問題的方法。 因為作業系統不同,所以設定方式也不大相同,以下用依作業系統別來說明, 1. Windows XP - IIS step-00 開啟IIS設定(它是要在「電腦管理」裡的「服務及應用程式」才看得到) step-01 可以從預設的網站設定(其以下的目錄均會套用相同權限)或針對特定的目錄設定。基本上中間應該可以只勾選「指令碼來源存取」、「讀取」、「寫入」三個選項,不過我是全選。 step-02 使用權限要選擇「指令碼及執行檔」 step-03 應用程式保護要選擇「低 (IIS處理序)」 step-04 在資料夾的「目錄安全設定」中的匿名存取及驗證控制,點選編輯後,在驗證方法視窗將帳戶改成權限較高的帳號,我是指定本機administrator 2. Windows 2003 Server - IIS step-00 開啟IIS step-01 可以從預設的網站設定(其以下的目錄均會套用相同權限)或針對特定的目錄設定。基本上中間應該可以只勾選「指令碼來源存取」、「讀取」、「寫入」三個選項,不過我是全選。 step-02 執行權限要選擇「指令碼及執行檔」 step-03 依「應用程式程式集區」指定的AppPool設定屬性 step-04 依【step-03】應用程式集區的名稱設定身分識別,並改成本機系統(不過會出現警告訊息,因為等同取得本機執行權限)

利用forfiles指令找出指定天數以前的檔案

圖片
有時必需要使用批次程式來定期刪除過時的檔案,就可以利用forfiles這個指令。 目前的系統日期為2015/02/03, 要處理的資料目錄內的檔案如下, 執行下列指令,可以找出建立日期是2015/01/30以後的檔案 forfiles /p . /d "2015/01/30" /c "cmd /c echo @FILE" 執行下列指令,可以找出建立日期是5日以前的檔案 forfiles /p . /d -5 /c "cmd /c echo @FILE" 執行下列指令,可以找出檔案後,並刪除 forfiles /p . /d -5 /c "cmd /c echo deleting @file && del /f @path" reference web: http://4i4u.com/blog/windows-forfiles-bat/

Windows批次檔常用變數

當前目錄 %cd% 目前正在運行的批次檔的所在目錄 %~dp0 目前正在運行的批次檔的所在的目錄的短名稱 %~sdp0 //20150415 新增 顯示傳入的第一個參數值 %1