【发布时间】:2014-04-22 14:09:46
【问题描述】:
我有一个如下所示的目录:
\isa\documents\2004\2008\jac\file1.txt
\isa\documents\2004\jan\file1.txt
\isa\scannedDocs\2004\2009\jan\file2.pdf
\isa\documents\2005\2008\jac\file1.txt
\isa\documents\2003\jan\file1.txt
\isa\scannedDocs\2002\2009\jan\file2.pdf
我有一个我需要复制的文件列表(从数据库中导出),但是因为我不需要目录中的每个文件,我只想要从我的列表中复制的文件:
文件需要的.txt:
\isa\documents\2004\2008\jac\file1.txt
\isa\documents\2004\jan\file1.txt
\isa\documents\2004\jac\file3.txt
\isa\documents\2003\jan\file1.txt
基本上:
- 我需要复制出所需的特定文件,然后
- 找不到文件时记录,以及,
- 我需要保留文件夹结构,因为文件可能具有相同的名称,只是位于不同的目录中。
它在 Windows 7 机器上,我可以运行 PowerShell 和批处理文件。我尝试了 robocopy 和 xcopy ,要么得到所有目录但没有文件,要么得到所有文件但没有目录......
任何帮助都会很棒。
编辑:
好的,所以我尝试了 Robocopy,但它要么复制目录而没有文件,要么复制文件且没有目录。我还没有在 powershell 中尝试过任何东西,但这可能就是这样......
这是 Windows,我可能只是在上面写错了斜线,我在两种环境之间工作,只是试图解释问题。
我尝试过的事情:
@echo off
set src_folder="C:\batchScripting\TEST_DIR\"
set dst_folder="C:\batchScripting\COPY2_DIR\"
robocopy "C:\batchScripting\TEST_DIR" "C:\batchScripting\COPY2_DIR" FileList.txt /S /V /NP /LOG:"log.log" /R:10 /W:30
和
@echo off
set src_folder=C:\batchScripting\TEST_DIR\
set dst_folder=C:\batchScripting\COPY2_DIR\
for /f "tokens=*" %%i in (File-list.txt) DO xcopy /s /i "%src_folder%\%%i" "%dst_folder%"
【问题讨论】:
-
那么问题出在哪里?阅读
files-needed.txt?检查文件是否存在或丢失?实际抄袭?完全不同的东西? -
除了vonPryz所说的,你还尝试过什么? mattgemmell.com/what-have-you-tried
-
如果
directory使用正斜杠,那么它不是 Windows/Batch。你的意思是使用反斜杠吗?数据库中的列表是否真的使用正斜杠?我可以想到几种方法来做到这一点。为您的失败尝试提供代码将非常有帮助。
标签: windows batch-file xcopy robocopy