如何实现开机自启批处理:创建或编辑TXT并记录用户登录信息
批处理文件实现登录记录功能方案
以下是满足需求的批处理代码,直接整合到你现有的开机自启批处理中即可:
@echo off setlocal enabledelayedexpansion :: 替换为你需要的日志文件完整路径 SET LOG_FILE=C:\Your\Target\Directory\LoginRecord.txt :: 确保日志文件所在目录存在,不存在则创建 IF NOT EXIST "%LOG_FILE%\.." ( MD "%LOG_FILE%\.." ) :: 获取标准格式的日期时间(避免区域设置差异) FOR /F "skip=1 tokens=1-6" %%A IN ('wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO ( IF NOT "%%A"=="" ( :: 构造YYYY-MM-DD格式的日期 SET LOG_DATE=%%F-%%D-%%A :: 构造HH:MM:SS格式的时间 SET LOG_TIME=%%B:%%C:%%E ) ) :: 生成符合要求的日志内容 SET LOG_LINE=%USERNAME% LOGGED IN !LOG_DATE! !LOG_TIME! SUCCESS. :: 追加日志到文件(文件不存在时自动创建) ECHO !LOG_LINE! >> "%LOG_FILE%" endlocal
关键说明:
SET LOG_FILE=...:必须修改为你实际需要存放日志的文件路径,比如D:\Logs\UserLogin.txt- 日期时间部分用
wmic命令获取,避免了不同系统区域设置导致的日期格式混乱,输出固定为YYYY-MM-DD HH:MM:SS格式 ECHO ... >> "%LOG_FILE%":批处理中>>符号表示追加内容到文件,若文件不存在会自动创建,正好满足你的需求- 先检查并创建日志目录,避免因目录不存在导致写入失败
如果不需要统一日期时间格式,也可以用系统默认的%DATE%和%TIME%简化代码:
@echo off setlocal SET LOG_FILE=C:\Your\Target\Directory\LoginRecord.txt IF NOT EXIST "%LOG_FILE%\.." ( MD "%LOG_FILE%\.." ) SET LOG_LINE=%USERNAME% LOGGED IN %DATE% %TIME% SUCCESS. ECHO %LOG_LINE% >> "%LOG_FILE%" endlocal
内容的提问来源于stack exchange,提问作者Fire Alarm
相关产品推荐
相关产品推荐

