找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 82508|回复: 25

[文件操作] 【已解决】求助按时间变量批量复制文件到另一个文件夹

[复制链接]
发表于 2021-7-11 15:13:40 | 显示全部楼层 |阅读模式
本帖最后由 jave000 于 2022-7-3 15:12 编辑

同类搜索简述:
按创建和修改时间将一批文件,从一个文件夹批量复制到另一个文件夹,并且两个文件夹的路径中间都有一个变量,需要手动输入,以及其中一个路径涉及到桌面,但为了可以分享给同事使用,识别任意电脑名下的桌面路径。
感谢楼下诸位

@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & exit /b
$j = read-host "Project Model Folder"
$C = [Environment]::GetFolderPath("Desktop")
$sour = "\\s1\$j\3\ed\","\\s1\$j\3\pd\"
$dest = "$C\S\$j\"
do
{
    $minute = read-host "Minutes of Minutes"
    $minute = $minute.trim()
}
while ($minute -match "\D")
Get-ChildItem -Path $sour -File |
    Where-Object { ($_.CreationTime -gt (get-date).AddMinutes(-$minute)) -or ($_.LastWriteTime -gt (get-date).AddMinutes(-$minute)) } |
    foreach-object {
        write-host $_.fullname
        copy-item $_.fullname -Destination $dest
    }
发表于 2021-7-11 18:10:47 | 显示全部楼层
本帖最后由 idwma 于 2021-7-11 19:48 编辑

@echo off&setlocal enabledelayedexpansion
set/p XXX=输入XXX具体名称
set/a tn=10000!time:~0,2!*60+10000!time:~3,2!
set/p t=填写分钟数:
set/a t=!tn!-!t!
set "p1=\\btssvr9\pds1\!XXX!\3d\eqp_dgn"
set "p2=\\btssvr9\pds1\!XXX!\3d\eqp_dgn"
set "d=!USERPROFILE!\Desktop\SPR\!XXX!"
for %%a in (%p1% %p2%) do (
        for /f "tokens=1,2,4* delims= " %%i in ('dir/a-d "%%a" ^|findstr "^[0-9]"') do (
                set tf=%%j
                set/a tf=10000!tf:~0,2!*60+10000!tf:~3,2!
                if "!date:~0,10!" == "%%i" if "!tf!" gtr "!t!" echo copy "%%a\%%k" "!d!" /y &rem 测试看完输出把前面的echo删了
        )
)
pause

评分

参与人数 1技术 +1 收起 理由
jave000 + 1 乐于助人

查看全部评分

发表于 2021-7-11 20:07:08 | 显示全部楼层
powershell

  1. $sour = "D:\New folder","D:\2"
  2. $dest = "x:"
  3. do
  4. {
  5.     $minute = read-host "多少分钟之内"
  6.     $minute = $minute.trim()
  7. }
  8. while ($minute -match "\D")

  9. Get-ChildItem -Path $sour -File |
  10.     Where-Object {$_.CreationTime -gt (get-date).AddMinutes(-$minute)} |
  11.     copy-item $_.fullname -Destination $dest
复制代码

评分

参与人数 1技术 +1 收起 理由
jave000 + 1 乐于助人

查看全部评分

 楼主| 发表于 2021-7-12 08:46:31 | 显示全部楼层
回复 2# idwma


    没有结果
Missing operator.
 楼主| 发表于 2021-7-12 09:10:05 | 显示全部楼层
回复 3# newswan


    没有结果
发表于 2021-7-12 15:03:09 | 显示全部楼层
回复 4# jave000


    是修改了之后运行的吗

评分

参与人数 1技术 +1 收起 理由
jave000 + 1 乐于助人

查看全部评分

发表于 2021-7-12 16:06:10 | 显示全部楼层
本帖最后由 newswan 于 2021-7-13 13:45 编辑

回复 3# newswan
  1. $sour = "D:\~","\\PC\Downloads"
  2. $dest = "D:\xxx"
  3. do
  4. {
  5.     $minute = read-host "多少分钟之内"
  6.     $minute = $minute.trim()
  7. }
  8. while ($minute -match "\D")

  9. Get-ChildItem -Path $sour -File |
  10.     Where-Object {$_.CreationTime -gt (get-date).AddMinutes(-$minute)} |
  11.     foreach-object {
  12.         write-host $_.fullname
  13.         copy-item $_.fullname -Destination $dest
  14.     }
复制代码
CreationTime  创建时间
LastWriteTime  最后更新时间

评分

参与人数 1技术 +1 收起 理由
jave000 + 1 乐于助人

查看全部评分

 楼主| 发表于 2021-7-12 17:18:01 | 显示全部楼层
回复 6# idwma


    是的
我把中文部分改了英文,因为我们系统只能是英文系统,中文是乱码
然后删除了
&rem 测试看完输出把前面的echo删了
其他没改,出来报错就是那样了
发表于 2021-7-12 18:12:38 | 显示全部楼层
本帖最后由 idwma 于 2021-7-12 18:14 编辑

回复 8# jave000

%time%变量,小时数是个位时不显示0,换个方法获得当前时间
@echo off&setlocal enabledelayedexpansion
set/p XXX=输入XXX具体名称
set/p t=填写分钟数:
for /f "tokens=1,2 delims=: " %%i in ('time/t') do set/a tn=10000%%i*60+10000%%j
set/a t=!tn!-!t!
set "p1=\\btssvr9\pds1\!XXX!\3d\eqp_dgn"
set "p2=\\btssvr9\pds1\!XXX!\3d\eqp_dgn"
set "d=!USERPROFILE!\Desktop\SPR\!XXX!"
for %%a in (%p1% %p2%) do (
        for /f "tokens=1,2,4* delims= " %%i in ('dir/a-d "%%a" ^|findstr "^[0-9]"') do (
                set tf=%%j
                set/a tf=10000!tf:~0,2!*60+10000!tf:~3,2!
                if "!date:~0,10!" == "%%i" if "!tf!" gtr "!t!" echo copy "%%a\%%k" "!d!" /y &rem 测试看完输出把前面的echo删了
        )
)
pause

评分

参与人数 1技术 +1 收起 理由
jave000 + 1 乐于助人

查看全部评分

 楼主| 发表于 2021-7-14 15:11:56 | 显示全部楼层
回复 9# idwma


     还是没有反应,是否网盘目录不支持?但网盘目录我们手动复制是有权限的
发表于 2021-7-14 15:19:38 | 显示全部楼层
回复 10# jave000

手动执行dir \\btssvr9\pds1\!XXX!\3d\eqp_dgn看有结果出来吗
 楼主| 发表于 2021-7-14 15:32:47 | 显示全部楼层
回复 11# idwma


    有的,显示了文件夹内所有文件以及具体到日分秒的列表
发表于 2021-7-14 15:35:56 | 显示全部楼层
回复 12# jave000


    那在提示填写分钟数的时候输个大点的数比如1440看有反应吗
 楼主| 发表于 2021-7-14 15:58:26 | 显示全部楼层
回复 13# idwma


    还是没有,我把三个目录都改成了具体目录,也没结果
发表于 2021-7-14 16:30:55 | 显示全部楼层
回复 14# jave000


    难道英文系统的时间格式显示和中文不一样?,可以发一部分dir/a-d \\btssvr9\pds1\!XXX!\3d\eqp_dgn的结果出来看一下吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:53 , Processed in 0.016550 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表