有一个简单的方法,在一个非常标准的UNIX环境中使用bash运行命令来删除目录中除最新的X文件之外的所有文件吗?
为了给出一个具体的例子,想象一下一些cron作业每小时写一个文件(比如一个日志文件或一个tar-up up备份)到一个目录.我想要一种方法来运行另一个cron作业,它将删除该目录中最旧的文件,直到少于5个.
而且要清楚,只有一个文件存在,它永远不应该被删除.
我不能忘记我的生活,记得在删除文件时如何绕过烦人的提示"你确定Y/N".
我似乎记得它是这样的:
del C:\Test && ECHO Y
Run Code Online (Sandbox Code Playgroud) 我正在研究一个批处理脚本,它允许我使用forfiles删除早于设定期间的文件.目前,我的目标是打印将被删除的文件.
我正在使用的forfiles调用从cmd.exe shell中完美运行,但是只要我将它嵌入到批处理脚本中,就会barfs.我怀疑这是因为@字符未被正确转义,但我不确定.
我正在运行的命令是:
forfiles /S /P "r:\" /m *.bak /d -10 /c "cmd /c echo @PATH"
Run Code Online (Sandbox Code Playgroud)
并导致以下错误:
ERROR: Invalid argument/option - '@PATH'
Type "FORFILES /?" for usage.
Run Code Online (Sandbox Code Playgroud)
我已经搜索了整个地方并尝试了一些不同的方案来转义@PATH组件.从@@ PATH到\"@ PATH \"的所有内容都没有结果.
任何帮助,将不胜感激!
我在用C#编写的Windows服务程序中使用log4net RollingFileAppender.日志目录中文件的数量和大小增长得太快,需要清理.配置如下:
<appender name="Rolling Log" type="log4net.Appender.RollingFileAppender">
<file value="..\logs\MyProgram.%cs{instanceName}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyy-MM-dd.lo\g" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="150MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-5level] %property{remoteUser} [%threadIdentity] %type{1}.%method - %message%newline%exception" />
</layout>
Run Code Online (Sandbox Code Playgroud)
我只想保留30天的日志.如何配置log4net自动删除日志?如果没有通过log4net可用,我会有什么解决方案?
先感谢您.
如何创建批处理文件以删除早于指定日期的文件?
这似乎不起作用;
:: --------DELOLD.BAT----------
@echo off
SET OLDERTHAN=%1
IF NOT DEFINED OLDERTHAN GOTO SYNTAX
for /f "tokens=2" %%i in ('date /t') do set thedate=%%i
type %1
pause
set mm=%thedate:~0,2%
set dd=%thedate:~3,2%
set yyyy=%thedate:~6,4%
set /A dd=%dd% - %OLDERTHAN%
set /A mm=%mm% + 0
if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1
:ADJUSTDAY
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if …Run Code Online (Sandbox Code Playgroud) 很简单,我怎么知道文件夹中的特定文件是否超过X小时?文件名和位置将始终相同.
谢谢
首先:我对批处理完全不熟悉.
我想写一个批处理文件,删除最小的文件和文件夹.5天或更久.此代码适用于所有文件:
FORFILES /p "C:\Users\rs\Desktop\testbatch" /s /m *.* /d -5 /c "cmd /c if not @isdir==TRUE del @path"
Run Code Online (Sandbox Code Playgroud)
但是我的文件夹仍在这里,如果它们是min,我也不知道如何删除它们.5天大.有人可以给我一个提示吗?
干杯
如何删除超过 X 小时或分钟的文件?
我有一个批处理文件,可以删除目录中超过 1 天的文件,但我需要几分钟和几小时。
REM Remove files older than 1 day
forfiles /p "C:\Users\Username\Downloads" /s /m *.* /c "cmd /c Del @path" /d -1
Run Code Online (Sandbox Code Playgroud) 可能重复:
批处理文件,用于删除超过N天的文件
我想运行一个计划的Windows任务,删除目录中超过2周的所有文件.
原因是这些是填充我的服务器的IIS和Tomcat日志,但我想保留最新的日志以防我需要调查问题.
有没有人知道这样做的简单方法?
干杯
的NiGe
我根据这个结构最多有4个文件(注意前缀是日期)
我想打开最近的一个(0921filename.txt).我怎么能在批处理文件中这样做?
谢谢.