批处理程序复制到另一个文件夹并从复制的文件中生成文本文件

时间:2012-08-17 19:21:14

标签: batch-file cmd

我需要制作一个批处理程序,它将我告诉它的文件夹目的地中的所有文件复制到程序中,并列出文件夹中该文件夹中的所有文件,以便我正在构建的程序可以阅读文本文件。我有批处理程序已经将所有文件复制到我需要的文件夹中,剩下的就是让它生成文本文件。

这就是我现在所拥有的

@echo off
setlocal
set source=c:\My Folder 
set dest=C:\Copied folder
pushd "%source%"
for /f "tokens=*" %%a in ('dir /b /a-d /s 2^>NUL') do copy "%%a" "%dest%
popd

出于隐私原因,我更改了源和目的地位置。 我只需要知道我需要在哪一行放置哪一行,告诉它读取它复制的所有文件并将它们放入文本文件中。

感谢高级!!

2 个答案:

答案 0 :(得分:0)

这是一个例子。 list变量存储复制文件列表的文件路径。

@echo off
setlocal
set source=c:\My Folder 
set dest=C:\Copied folder
set list=c:\copied files.txt
pushd "%source%"
echo>nul 2>"%list%"
for /f "tokens=*" %%a in ('dir /b /a-d /s 2^>NUL') do (
  echo %%~dpa%%~nxa >>"%list%"
  copy "%%a" "%dest%"
)
popd

答案 1 :(得分:0)

只需添加...

DIR /b /a-d "%dest%" > copied_files.txt

...在原始剧本的末尾。

编辑:我对pushd / popd命令感到有些困惑,我之前见过这些命令,但我从未使用过它们。现在阅读关于它的ss64,我建议你删除它们,然后将路径放入FOR的{​​{1}}命令。所以它就像这样:

DIR