【发布时间】:2019-07-25 01:48:30
【问题描述】:
我只想将特定文件夹及其中的文件从源位置复制到目标位置。文件夹列表单独给出 文本文件。
文本文件的值类似于
01
02
03
例如源文件夹的父文件夹和子文件夹
a -->
01 --> Hi.txt
b -->
c -- >
d -->
02 --> foo.txt, abc.xlsx
e -->
02 --> foo.txt
f -->
03 --> cde.txt
g -->
04 --> xyz.txt
目标文件夹所需的输出
01 --> Hi.txt
02 --> foo.txt, abc.xlsx
02[2] --> foo.txt
03 --> cde.txt
我当前的代码无法在目标文件夹中创建带有后缀 [2] 的重复文件夹,而是要求 [覆盖目标文件夹中已经存在的文件]:
例如上面示例中的文件夹 02 在两个不同的子文件夹中出现两次。使用下面的代码,它只在目标中创建一个 02 文件夹,从其中的第一个 02 源文件夹中复制文件,并在下一次出现时,它只是说目标中已经存在文件夹你想覆盖名称与文件相似的文件已经在目标 02 文件夹中。
有人可以帮我解决这个问题并帮我创建带有后缀 [2] 、 [3] .. 等的重复文件夹,以应对任何重复文件夹名称的出现。
代码:
@echo off
set SRC_FOLDER="C:\Source\"
set DST_FOLDER="C:\Destination"
for /f "tokens=*" %%a in
(C:\Users\Desktop\CopyScript\TextFile.txt)
do (
for /d /r %SRC_FOLDER% %%G in (*) do (
set /x counter=0
REM echo %%~nxG and %%G and %%a
if "%%~nxG"=="%%a" (
:loop
if exist %DST_FOLDER%\%%a[%x%] set /x
counter=!counter!+1 && goto :loop
mkdir %DST_FOLDER%\%%a[%x%]
xcopy "%%G" %DST_FOLDER%\%%a[%x%]
)
)
)
【问题讨论】:
-
你贴的代码有几个错误的换行符,没有
set /X;那么它真的是您使用的代码吗?请从您的脚本中复制它,不要在这里重新输入!
标签: windows shell batch-file command-line