【发布时间】:2014-08-27 05:34:25
【问题描述】:
我想同时读取文件列表和文件夹列表,并将每个文件复制到每个文件夹中,并重命名文件。
以下是我的原始代码。外部循环不会增加。我已经尝试了所有方法来应用我读过的关于循环和延迟扩展的内容,但没有任何效果。
谁能告诉我如何修复代码或改用什么代码?
编辑以澄清问题:每次迭代时,“echo src”都会回显 Filelist.txt 中的第一行。永不改变。另一方面,“echo dest”确实按预期(期望)通过 folderlist.txt。
@echo off
setlocal enabledelayedexpansion
:: var is set in calling routine
SET "newname=%var%_filename_0.jpg"
FOR /F %%G IN (Filelist.txt) DO (
FOR /F %%H IN (Folderlist.txt) DO (
SET src=%%G
SET dest=%%H
echo src is !src!
echo dest is !dest!
REM Here with each iteration do a copy and rename
:: copy "!src!" "!dest!\%newname%" 1>nul
)
)
【问题讨论】:
-
“外部循环不增加”是什么意思?你的意思是
Count不会增加吗?因为 count 在你的 inside 循环中,而且它似乎是你试图增加的唯一东西,所以我不明白你的意思。 -
对不起。第 1 个帖子。我的 src var (%%G) 始终等于 filelist.txt 中的第一行,而 dest var 根据需要遍历文件夹列表的行。 (我会拿出柜台。)
-
您的代码在这里运行良好(尽管我不知道它是否按照您期望的方式运行) - 有一个例外:标签
:end不存在,所以它不会退出当计数器达到 endcount 时。将其替换为goto :eof会有所帮助。 -
你的文件组织结构是否应该是这样的:Folder1 - File1, File2, File3, File4, File5... Folder2 - File1, File2, File3, File4, File5... Folder3 - File1 , 文件 2, 文件 3, 文件 4, 文件 5... ....
-
Rafael:不。要复制的文件在桌面/子目录中。文件的数量各不相同,但始终少于文件夹。我将多次复制一些文件以填满文件夹。这就是我想要/需要从文件列表工作的原因。文件进入像 desktop/sub/sub1/sub2/sub3 这样的结构的“sub3”文件夹,其中有多个 sub2 文件夹,每个文件夹下都有一个 sub3。 (希望有帮助)
标签: batch-file for-loop copy nested