我的问题可能已经得到某种回答,但不幸的是,我没有得到我想要的确切答案。以下是我正在尝试做的-
- 在 pc1 上创建一个文件夹,
c:\temp1
- 映射包含源文件夹/文件的网络驱动器 -
\\server1\directory1folder01...10000
(系统每天创建一个或多个文件夹,但具有唯一的时间戳 - 复制在 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。
我只知道这对我来说非常有效,祝你好运!
(另请注意,我很懒,只是将当前目录更改为日期文件夹,因此当我告诉它复制时,我只是复制到当前位置,这就是为什么目的地是一个句点,您可以轻松地将句点更改为您的本地路径)