BAT脚本log文件问题

在处理BAT脚本时,遇到一个棘手的问题:尝试写入TXT日志文件时,系统提示文件被线程占用而无法打开。通过细致的调试,发现某个红色标记的部分可能与日志文件被占用有关,尤其是当启动一个exe程序时,它似乎会持续占用日志文件,但具体原因仍然未知。
摘要由CSDN通过智能技术生成

这两天由于工作用到BAT脚本, 遇到了麻烦问题:写TXT log时候报错 -- “文件被线程占用,无法打开”

log文件无法打开编辑

经过长时间调试,发现在红色部分占用log,至今仍未明白。启动一个exe会一直占有log?

echo ============================ >>log.txt
echo Test started at: %date% %time% >>log.txt

::Rename the folder if it's been changed
if exist "\\guinea\QA\APXDailyRegression\vmqanubat40\IcanHelp_new" (ren "\\guinea\QA\APXDailyRegression\vmqanubat40\IcanHelp_new" "IcanHelp") >>log.txt
::start app
cd "C:\dyao\Running Projects\"
<span style="background-color: rgb(255, 0, 0);"><strong>st
要使用批处理脚本bat文件)删除一周以前的日志文件,你可以按照以下步骤创建和执行脚本: 1. 打开记事本或者任何文本编辑器。 2. 编写如下脚本代码: ```bat @echo off setlocal enabledelayedexpansion :: 定义日志文件所在的目录 set "LOG_FOLDER=C:\path\to\your\log\files" :: 获取当前日期和一周前的日期(用负数表示天数) for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set datetime=%%a set datetime=!datetime:~0,8! set /a "currentDate=!datetime:~0,4!!datetime:~4,2!!datetime:~6,2!" set /a "weekdaysAgo=7" set /a "weekdaysDate=!currentDate!-!weekdaysAgo!" set "weekdaysDate=!weekdaysDate:~0,4!!weekdaysDate:~4,2!!weekdaysDate:~6,2!" :: 遍历目录下的.log文件 for /f "delims=" %%f in ('dir /b "%LOG_FOLDER%\*.log"') do ( set "fileDate=%%f" set "fileDate=!fileDate:~0,8!" if "!fileDate!" lss "!weekdaysDate!" ( del "%LOG_FOLDER%\%%f" echo Deleted: %LOG_FOLDER%\%%f ) ) echo Done. pause ``` 3. 将上面的脚本中的`C:\path\to\your\log\files`替换成你实际日志文件所在的文件夹路径。 4. 保存这个文件,将扩展名改为`.bat`,例如 `delete_old_logs.bat`。 5. 双击运行这个脚本文件,或者在命令提示符(CMD)中运行它。 脚本解释: - `@echo off` 用于关闭命令回显,使输出更加清晰。 - `setlocal enabledelayedexpansion` 允许在for循环中使用动态变量。 - `wmic OS Get localdatetime` 获取当前的日期和时间。 - `for /f` 循环和 `dir` 命令用于列出指定目录下的所有 `.log` 文件。 - `set` 命令用于设置和计算日期变量。 - `del` 命令用于删除旧文件。 - `if` 语句用于比较文件日期和一周前的日期,如果是旧的则删除。 - `pause` 使窗口在执行完毕后不立即关闭,方便查看结果。 确保在执行脚本之前,你有足够的权限访问和删除指定的日志文件,并且最好先测试一下脚本,以确认它按照预期工作,避免意外删除重要文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值