用于从文本文件中读取和提取详细信息的批处理脚本

时间:2017-11-01 09:11:41

标签: windows batch-file

我需要使用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\...

最后三个点表示目录,否则就是文件。

在上述场景中我需要做的是:

  • 将文件夹ASOURCE复制到C:\FinalDestination\D\
  • 将文件A.txtSOURCE复制到C:\FinalDestination\N\
  • 将文件B.txtSOURCE复制到C:\FinalDestination\C\
  • 将文件夹ZZZSOURCE复制到C:\FinalDestination\U\

我不知道该怎么做,因为我对Windows命令行还不熟悉。

我知道XCopy是一个可以为我工作的命令,xcopy source destination,但我不知道如何提取源和目标详细信息。

1 个答案:

答案 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