我需要使用Windows批处理脚本将一些文件和文件夹复制到各自的目的地。
我应该复制的所有文件和文件夹都保存在文件夹SOURCE
中。
示例:
C:\X\Y\Z\SOURCE\A
C:\X\Y\Z\SOURCE\A.txt
C:\X\Y\Z\SOURCE\B.txt
C:\X\Y\Z\SOURCE\ZZZ
上述所有目标路径均以文本文件内容destination.txt
提供。
destination.txt的内容:
C:\FinalDestination\D\A\...
C:\FinalDestination\N\A.txt
C:\FinalDestination\C\B.txt
C:\FinalDestination\U\ZZZ\...
最后三个点表示目录,否则就是文件。
在上述场景中我需要做的是:
A
从SOURCE
复制到C:\FinalDestination\D\
A.txt
从SOURCE
复制到C:\FinalDestination\N\
B.txt
从SOURCE
复制到C:\FinalDestination\C\
ZZZ
从SOURCE
复制到C:\FinalDestination\U\
我不知道该怎么做,因为我对Windows命令行还不熟悉。
我知道XCopy
是一个可以为我工作的命令,xcopy source destination
,但我不知道如何提取源和目标详细信息。
答案 0 :(得分:1)
使用未更改的destination.txt
和您提供的数据,以下内容可能有所帮助:
@Echo Off
Set "sD=C:\X\Y\Z\SOURCE"
Set "sF=destination.txt"
For /F "UseBackQ Delims=" %%A In ("%sF%"
) Do For %%B In ("%%~fA.") Do echo=XCopy/IY "%sD%\%%~nxB" "%%~dpA." 2>Nul
Pause
您只需修改第3
行和4
注意强>:
我目前已经制作了它,所以没有任何东西被复制,只有输出到屏幕的命令。如果您对输出感到满意,请从第echo=
行删除7
并删除行的内容8