Batch file 基于修改日期(不包括某些文件)将x天以前的文件从一个位置移动到另一个位置的批处理脚本

Batch file 基于修改日期(不包括某些文件)将x天以前的文件从一个位置移动到另一个位置的批处理脚本,batch-file,cmd,Batch File,Cmd,我正在为特定目的编写批处理脚本。 我的要求是将比特定日期(修改日期)更早的文件从一个位置移动到另一个位置 使用以下脚本:- @echo off set "src=C:\move_file_1_loc_2_another\In" set "dest=C:\move_file_1_loc_2_another\Out" for %%F in ("%src%\*.*") do ( for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tF") do (

我正在为特定目的编写批处理脚本。 我的要求是将比特定日期(修改日期)更早的文件从一个位置移动到另一个位置

使用以下脚本:-

@echo off  
set "src=C:\move_file_1_loc_2_another\In"
set "dest=C:\move_file_1_loc_2_another\Out"
 for %%F in ("%src%\*.*") do (
    for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tF") do (
        if not exist "%dest%\%%A" mkdir "%dest%\%%A"
            forfiles -p "%src%" -d -2 -m *.* /C "cmd /c move "%%~fF" "%dest%\%%A"" 
    )
 )
脚本成功地移动了文件,留下了一些扩展名。让我说得更清楚些

上面的脚本说要移动2天以前的所有文件,但系统也会移动过去2天的一些文件,并且有些文件会被删除

我的需要是,它应该排除过去2天的所有文件,无论文件的扩展名是什么

请告诉我哪里出了问题。
谢谢

如何将文件的
选项
-d-2
更改为
-d-3
?您需要使用
0x22
包含在
forfiles/C
的命令行中,如下所示:
forfiles-p“%src%”-d-2-m*/C”cmd/C move 0x22%%~fF0x22 0x22%dest%%A0x22“
Hi@aschipfl-将-2更改为-3的目的是什么。我的问题不是几天。问题是它也会移动前几天的一些文件,而我希望如果我写-2,就不会移动单个文件,这意味着没有单个文件(任何扩展名)应该从最近两天的目录中移动*我现在在系统中的文件类型是-.txt和.72x,系统正在移动.txt文件并保留.72x文件,但我希望脚本将.txt和.72x文件保留在系统中,并将其余文件移走,因为您说要移动超过2天的文件,和
-2
包括2天以前的项目。不管怎样,我还是得不到你想要的。您正在谈论某些文件类型(扩展名),但您的代码没有反映它们。也许在你的问题中加入一些示例数据会有所帮助。。。