0

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

这是我现在拥有的

@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

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

先谢谢了!!

4

2 回答 2

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
于 2012-08-17T19:57:35.413 回答
0

只需添加...

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

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

编辑:pushd我对/命令有点困惑popd,我以前见过这些,但我从未使用过它们。现在在ss64上阅读有关它的信息,我建议您删除这些并将路径放入FOR'DIR命令中。所以它像这样组合在一起:

@echo off
setlocal
set source=c:\My Folder
set dest=C:\Copied folder
for /f "tokens=*" %%a in ('dir /b /a-d /s "%source%" 2^>NUL') do copy "%%a" "%dest%
dir /b /a-d "%dest%" > copied_files.txt
于 2012-08-17T21:27:59.527 回答