Windows 创建从源文件读取多个输入参数的批处理脚本

Windows 创建从源文件读取多个输入参数的批处理脚本,windows,batch-file,Windows,Batch File,我需要编写一个批处理脚本,将一个文件夹的文件复制到另一个文件夹。用户将在文件中提供源文件夹和目标文件夹。此文件可以是xml、cinfig或文本文件。该文件有多个值 例如,文本文件可能有 <key="1" source="D:\test\" destination="E:\folderfile\"/> <key="2" source="E:\test\" destination="F:\folderfile\"/> <key="3" source="C:\test\"

我需要编写一个批处理脚本,将一个文件夹的文件复制到另一个文件夹。用户将在文件中提供源文件夹和目标文件夹。此文件可以是xml、cinfig或文本文件。该文件有多个值

例如,文本文件可能有

<key="1" source="D:\test\" destination="E:\folderfile\"/>
<key="2" source="E:\test\" destination="F:\folderfile\"/>
<key="3" source="C:\test\" destination="D:\folderfile\"/>
<key="4" source="D:\test\" destination="E:\folderfile\"/>
<key="5" source="D:\test\" destination="E:\folderfile\"/>
当批处理文件运行时,它要求用户输入键值。假设用户提供了2,4,5个值,批处理脚本应该从文件中获取键2的源和目标,并复制文件,依此类推,它也应该对4和5个键执行

请不要建议使用powershell脚本或vb脚本,因为我应该只使用批处理脚本。 任何人的帮助都会受到感激

谢谢
Praveen

如果要将文件格式化为简单命令:

copy d:\test\ e:\folderfile\
copy e:\test\ f:\folderfile\
...
您可以使用以下批处理文件:

setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n . %1^|find "%2:"') do (
set searchtext = "%2:"
set linetext=%%a
set commandToCall=!linetext:%2:=!
)
call %commandToCall%
使用:

mybatchfile.bat input.txt <linenumber>

欢迎来到StackOverflow。到目前为止,您尝试了哪些不起作用的方法?这不是“为我做我的任务”网站;你需要表现出你已经为自己解决这个问题付出了一些努力。发布您的努力,我们将尝试帮助您找出它们不起作用的原因。你好,Ken,实际上我只有一天的时间编写批处理脚本。我使用copy&xcopy命令复制了文件,但不确定如何从其他源文件获取多个输入值。如果提示用户提供密钥,则批处理脚本必须根据提供的密钥从其他filetxt或xml文件中获取源路径和目标路径。@Praveen是否有名为input.txt的输入文件与批处理脚本位于同一文件夹中?Hi Shimoon,感谢您的回复。但是你送的那个坏了。获取类似FINDSTR的错误:无法打开input.txt&在代码中,您将行号指定为批处理文件的输入,但我希望将键值指定为输入。比如说像mybatchfile.bat2,3,4。这里2,3,4是文本文件中指定的键值,我想要这些键值的来源和目的地Shimoon,input.txt和mybatchfile.bat文件都位于同一个文件夹中