Batch file 如果日志文件的大小大于
您好,我正在尝试创建一个批处理脚本来删除应用程序中的日志文件。如果文件大小更大,下面是我的代码。我在第二次“pushd”之后出现语法错误Batch file 如果日志文件的大小大于,batch-file,Batch File,您好,我正在尝试创建一个批处理脚本来删除应用程序中的日志文件。如果文件大小更大,下面是我的代码。我在第二次“pushd”之后出现语法错误 for/fp存储文件的内容,而不是您想要的内容。对使用普通的: for %%A in ("%file%") do set size=%%~zA 请准确复制此代码并重试 @echo off setlocal enabledelayedexpansion pushd "C:\Program Files\temp\Logs" for /f "skip=10 eo
for/f
p存储文件的内容,而不是您想要的内容。对使用普通的:
for %%A in ("%file%") do set size=%%~zA
请准确复制此代码并重试
@echo off
setlocal enabledelayedexpansion
pushd "C:\Program Files\temp\Logs"
for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d E*.log') do @del "%%F"
for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d A*.log') do @del "%%F"
popd
sleep 1
pushd "C:\Program Files\temp\modules\Logs"
set file="P*.log"
set "maxbytesize=10"
for %%A in ("%file%") do (
set size=%%~zA
if !size! GTR %maxbytesize% del "%%A"
)
当我删除/f时,我得到“usebackq”是意外的error@spiky是的,正如斯蒂芬所说的那样仔细地看答案。“他的回答毫无用处。”格哈德谢谢你的强调。但是,即使在上述更改之后,我也会遇到语法错误什么语法错误?您是否运行并读取了内容?请注意,由于cmd的32位数学限制,这将无法处理大于2GB的文件。exe@LưuVĩnhPhúc我处理的文件大小不超过100MByeah,只要您知道限制就可以了(如果%%za GTR…
?)如何?@Gerhard我按原样尝试了代码。我没有看到任何错误。但它并没有删除大小超过10kb的日志文件。@spiky已编辑,请复制整个代码,我注意到您在设置maxbytesize=10@GerhardBarnard:这里的引号是个坏主意:它们强制进行字符串比较,其中2
大于100000
@spiky:note,%%~zA
以字节为单位给出大小(不是像你想象的那样,是千字节)。
@echo off
setlocal enabledelayedexpansion
pushd "C:\Program Files\temp\Logs"
for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d E*.log') do @del "%%F"
for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d A*.log') do @del "%%F"
popd
sleep 1
pushd "C:\Program Files\temp\modules\Logs"
set file="P*.log"
set "maxbytesize=10"
for %%A in ("%file%") do (
set size=%%~zA
if !size! GTR %maxbytesize% del "%%A"
)