我有一个如下所示的目录:
\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
我有一个我需要复制的文件列表(从数据库导出),但因为我不需要目录中的每个文件,我只想要从我的列表中复制的文件:
文件-needed.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%"
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%a IN (q23221996.txt) DO (
IF EXIST "%sourcedir%%%a" (ECHO f|xcopy /y "%sourcedir%%%a" "%destdir%%%a" 2>NUL >nul
) ELSE (ECHO "%sourcedir%%%a" does NOT exist)
)
GOTO :EOF
我使用了一个名为q23221996.txt
的文件,其中包含我的测试数据。 sourcedir
和destdir
都设置为适合我的系统。
如果目标文件已存在,xcopy
命令上的/ y会强制覆盖。