【发布时间】:2011-04-29 18:04:56
【问题描述】:
我有一个包含例如的文本文件:
c:\test\test1.txt;d:\test2\j.js;d:test2\2.cs
我需要将那些使用 Windows 命令行 bat 文件分隔的文件复制到传递给 bat 文件的给定文件夹。我怎样才能做到这一点?
【问题讨论】:
标签: windows command-line windows-scripting
我有一个包含例如的文本文件:
c:\test\test1.txt;d:\test2\j.js;d:test2\2.cs
我需要将那些使用 Windows 命令行 bat 文件分隔的文件复制到传递给 bat 文件的给定文件夹。我怎样才能做到这一点?
【问题讨论】:
标签: windows command-line windows-scripting
其实很简单:
for /f %%l in (somefile.txt) do (
for %%f in (%%l) do (
copy "%%f" %1
)
)
第一个循环逐行遍历文件;第二个将在分号处拆分(以及其他内容,例如空格和逗号)。如果文件名看起来像您提供的文件名,它应该可以工作。
如果复制目标也是这样,显然只需再添加两个循环:
for /f %%l in (somefile.txt) do (
for %%f in (%%l) do (
for /f %%k in (destination.txt) do (
for %%g in (%%k) do (
copy "%%f" %%g
)
)
)
)
【讨论】:
for %%k 更改为for /f %%k
您可以使用以下批处理文件命令从文件列表中复制文件:
for /f "usebackq delims=;" %%f in (filelist.txt) do copy %%f %1
假设 filelist.txt 的每个文件名都在单独的一行中:
c:\test\test1.txt;
d:\test2\j.js;
d:\test2\2.cs
不知道如何解析单行。
【讨论】: