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