iT邦幫忙

DAY 16
2

DOS 不死系列 第 16

真槍實彈實例演練(1) - 檢查某個目錄裡面是否有檔案

從這次之後,就開始進入真槍實彈的實例演練,就先來個dir指令跟先前說過的指令的綜合應用。
看code,說明都在裡面了,就不多廢話了:

@echo off
REM 檢查某個目錄裡,是否沒有任何檔案

REM 先清空螢幕
cls

REM 設定區域變數
setlocal

REM 檢查是否有傳入要檢查的目錄
if %1a==a goto Syntax

REM 檢查目錄是否存在
if not exist %1 echo 目錄 %1 不存在,請確認目錄名稱沒打錯 && goto EOF

REM 以最精簡的方式顯示該目錄中的所有檔案,然後用findstr /v檢查是不是有個不可能出現的檔名
REM 把結果導到一個不存在的裝置,如果目錄有檔案的話,findstr /v檢查的結果會是真的,就表是有檔案存在
REM 檢查結果是假的,就表是沒檔案存在
dir %1 /b | findstr /v "5alexc5alexc" > nul && (set isEmpty=有檔案) || (set isEmpty=沒有檔案)
echo 目錄 %1 裡,%isEmpty%
goto EOF

REM 顯示使用方式
:Syntax
echo 使用方式:
echo %0 "C:\要被檢查的目錄"

:EOF
REM 結束設定區域變數
endlocal

把上面的程式碼存成checkempty.cmd。例如要檢查%tmp%目錄是不是空的,就用:

checkempty %tmp%

執行結果:

目錄 C:\Users\alexc\AppData\Local\Temp 裡,有檔案

上一篇
批次檔的基本概念
下一篇
真槍實彈實例演練(2) - 檢查某個目錄裡面有幾個檔案
系列文
DOS 不死18

1 則留言

0
SunAllen
iT邦研究生 1 級 ‧ 2010-10-25 14:30:27

微軟的dos 愈來愈有shell 的fu 了...

我要留言

立即登入留言