Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 从多个文件夹进行批处理文件日期检查_If Statement_Batch File_Copy_Set_Xcopy - Fatal编程技术网

If statement 从多个文件夹进行批处理文件日期检查

If statement 从多个文件夹进行批处理文件日期检查,if-statement,batch-file,copy,set,xcopy,If Statement,Batch File,Copy,Set,Xcopy,我正在寻找(如果可能的话)一个检查和复制批处理脚本,我可以远程运行它来检查多个目录并复制最新修改的日期 澄清一下:在远程机器上,我正在查看可能的五个文件夹(可能存在也可能不存在)。我需要脚本来检查用户潜在5个配置文件的两个子文件夹(桌面和Internet收藏夹)的最后修改日期,然后选择最近修改的日期并将文件夹复制到其他位置 所以路径看起来像: "\\%asset%\c$\documents and settings\%username%\Desktop" "\\%asset%\c$\docume

我正在寻找(如果可能的话)一个检查和复制批处理脚本,我可以远程运行它来检查多个目录并复制最新修改的日期

澄清一下:在远程机器上,我正在查看可能的五个文件夹(可能存在也可能不存在)。我需要脚本来检查用户潜在5个配置文件的两个子文件夹(桌面和Internet收藏夹)的最后修改日期,然后选择最近修改的日期并将文件夹复制到其他位置

所以路径看起来像:

"\\%asset%\c$\documents and settings\%username%\Desktop"
"\\%asset%\c$\documents and settings\%username%\Favorites"
检查日期并将其与(可能的)进行比较

找到具有最新修改日期的子文件夹后,可将其复制(仅复制到最新的子文件夹):

我知道我可以在一个位置完成检查,但我不知道如何让batch运行多个检查,然后选择最近的检查

这真的有可能吗?还是我用了错误的语言?除了支票,我什么都拿到了,这就是我被卡住的地方


任何帮助都将不胜感激

正如我在评论中所说,我认为Powershell更适合这项任务。但我确实想到了一种方法,它可以批量工作,而不必求助于文本日期比较(这很困难)

您可以使用
robocopy
及其
/copy:t
选项来复制时间戳。想象一下,将所有三个目录复制到一个位置,然后执行一个
dir/b/od
来列出这个按日期排序的临时目录,以找到最近的一个,并将其复制到您的目标


我没有时间来测试这个理论或给你真正的代码,但希望它能给你一个尝试的方法。或者说服您查看Powershell.:-)

你需要更清楚地知道你想做什么。例如,我们必须假设您有一个资产和用户名列表(但用户名有特殊含义-当前用户名)以及这些“潜在的5个配置文件”的名称-没有后缀,.temp,.temp001-可能是.temp002和.temp002。您是否知道,如果更改了其中一个目录的子目录,则该目录上的日期不会更改?这会改变你的想法吗?可以从每个“潜在5”子目录中简单地
XCOPY/D
,并获得所有可用版本中的最新版本。缺点是,如果用户更改了快捷方式,然后将旧版本复制回来,然后,最新版本的快捷方式将是原始更改后的快捷方式…除此之外-如果您想要最新的目录日期(忽略子目录可能已更改),那么我们需要进行大量的日期/时间操作,并需要了解您的日期-时间格式。我相信可以通过批处理完成,但正如Peter Wright所述,批量日期比较是脆弱和困难的。我认为最好看看Powershell。
"\\%asset%\c$\documents and settings\%username%.temp\Desktop"
"\\%asset%\c$\documents and settings\%username%.temp\Favorites"
"\\%asset%\c$\documents and settings\%username%.temp001\Desktop"
"\\%asset%\c$\documents and settings\%username%.temp001\Favorites"
"\\%asset%\c$\documents and settings\Backup"