1
我有一個腳本,它編排了多個進程,所有這些進程都在參數文件中定義的位置創建日誌(即獨立於腳本)。在運行這些過程之前,腳本清空日誌位置,例如如何根據參數安全地編碼目錄刪除?
rem LOGLOC is loaded from a parameter file
Del /F /Q /S %LOGLOC%\*.*
顯然非常危險。如果由於任何原因LOGLOC被錯誤地定義,這可能是災難性的。我修改腳本中添加一些安全...
if "%LOGLOC%" equ "" (
ECHO FATAL ERROR: LOGLOC not defined
exit /b 1
)
Del /F /Q /S %LOGLOC%\*.*
...但不佔地方LOGLOC可能會被意外地定義爲'.'
或'..'
實例。
有沒有更好的模式來檢查參數,然後以可能有害的方式使用它?
編輯:我添加了Fejese建議的以下驗證規則。
- 檢查它的長度至少爲4個字符,例如C:\大號
- 驗證,在AZ
- 驗證CHAR 1該字符2,3 =:\
- 驗證該路徑存在且是一個目錄
如果我可以計算出這些我將發佈結果,但信用將去Fejese指向我在正確的方向...
是否可以從用戶那裏獲得確認? IE瀏覽器。使其互動?或者這個腳本是否必須在沒有人爲干預的情況 – fejese
腳本每天晚上無人值守運行。 – andyb