如何使用批处理文件从网络驱动器复制最近的文件夹/文件?

如何使用批处理文件从网络驱动器复制最近的文件夹/文件?

我的问题可能已经得到某种回答,但不幸的是,我没有得到我想要的确切答案。以下是我正在尝试做的-

  1. 在 pc1 上创建一个文件夹,c:\temp1
  2. 映射包含源文件夹/文件的网络驱动器 - \\server1\directory1folder01...10000(系统每天创建一个或多个文件夹,但具有唯一的时间戳
  3. 复制在 PC1 中创建的最新文件夹,即c:\temp1

这是我在批处理文件中写的:

+++++++++++++++++++++++++++++++++

@echo off
mkdir c:\temp1

echo mapping drive...

net use Y:\\server\directory1 /user:myusername mypassword

echo copying files/folders into c:\temp1....

xcopy Y:\ c:\temp1 /s/e/d:"%DATE%"

+++++++++++++++++++++++++++++++++

它创建c:\temp1并映射了驱动器,但无法复制。
有人能帮我吗?

卡姆

答案1

%DATE% 将为您提供 MM/DD/YYYY 格式,而不是所需的 MM-DD-YYYY

尝试使用以下方法,以使用破折号代替斜线:

UK/Europe:  /D:%DATE:~3,2%-%DATE:~0,2%-%DATE:~6,4%
USA:        /D:%DATE:~4,2%-%DATE:~7,2%-%DATE:~10,4%

附注:如果您使用的是 Windows 7,请考虑使用“Robocopy”/MINAGE /MAXAGE 命令,因为它通常比 xcopy 更可靠,并且提供更多选项。

答案2

您是否考虑过以下类似的事情?(因为这是我针对同一问题所做的事情)

set folder=%DATE% 
mkdir "%folder%" 
cd "%folder%" 
powershell.exe "copy-item -Path \\server\directory1\*.* -Destination ."

请记住,此解决方案仅适用于 Windows 7 计算机,但如果您安装了“powershell”,它也可以在 WinXP 上运行

这种方法的优点是它不需要处理任何共享,唯一的缺点是需要在运行它的机器上安装 Win7 或安装 powershell。

我只知道这对我来说非常有效,祝你好运!

(另请注意,我很懒,只是将当前目录更改为日期文件夹,因此当我告诉它复制时,我只是复制到当前位置,这就是为什么目的地是一个句点,您可以轻松地将句点更改为您的本地路径)

相关内容