背景
检查目标路径下Test.txt文件是否存在,并记录文件大小与文件创建时间到Log.txt文件。
效果
C:\Users\yourname\Desktop\CSDN 文件夹内文件:
运行.bat文件后:
log.txt 文件内容
代码
@echo off
setlocal enabledelayedexpansion
SET CurrentTime=%date:~0,10% %time:~0,5%
SET SoureFileFolder=C:\Users\yourname\Desktop\CSDN
SET SoureFile=C:\Users\yourname\Desktop\CSDN\test.txt
SET LogFile=C:\Users\yourname\Desktop\CSDN\log.txt
if exist %SoureFile% (
Rem 文件存在
for /f "tokens=1,2,3,4,5 delims= " %%i in ('dir %SoureFileFolder% /o-d/tw/a-d^| findstr Test.txt') do (
SET fileSize=%%l
SET fileCreateTime=%%i %%j%%k
)
echo %CurrentTime% -----: Find test.txt [fileCreateTime:!fileCreateTime!, Size:!fileSize!] >> %LogFile%
) else (
Rem 文件不存在
echo %CurrentTime% Error: Can not find Test.txt >> %LogFile%
)
.Bat 相关知识
1.setlocal enabledelayedexpansion
延迟环境变量扩展链接: 链接.
2.Rem
为代码注释关键字
3.使用SET
设置变量时,等号左边不能有空格,右边如果有空格,会赋值给变量。
4.%%包裹起来的为变量,%date:~0,10%
表示取%date%
这个系统变量的0-10位
5.for
, else
关键字附近使用括号时,关键字与括号中间需要有一个空格。
6.for /f
的用法:链接.