【发布时间】:2017-03-22 19:56:44
【问题描述】:
我有一个c:\test 目录,其中有一个文本文件var_list.txt,其中包含以下 3 行:
abc
xyz
def
我有一个C:\test\source 目录,其中有一个文本文件source_file.txt。
我有一个空的C:\test\target 目录。
我想编写一个 Windows 批处理文件来执行这些任务:
- 在变量中逐行读取
var_list.txt - 对于每一行,将
source_file.txt从C:\test\source目录复制到C:\test\target目录,其文件名也有变量行附加到它的名称中
所以当我运行这个 windows 批处理文件时,我希望它创建这 3 个文件:
- target_file_abc.txt
- target_file_xyz.txt
- target_file_def.txt
所以我在c:\test 目录中创建了一个Windows 批处理文件create_target_files.bat,其中包含以下内容:
@echo off
for /f "tokens=*" %%a in (var_list.txt) do (
echo line=%%a
copy /Y /V C:\test\source\source_file.txt C:\test\target\target_file_%a%.txt
)
pause
当我运行它时,我得到这个输出:
线=abc
已复制 1 个文件。
线=xyz
已复制 1 个文件。
线=定义
已复制 1 个文件。
按任意键继续。 . .
但在C:\test\target 目录中只创建了1 个文件target_file_.txt。为什么不使用变量名创建 3 个文件?
【问题讨论】:
标签: windows batch-file cmd