编写批处理文件以重复复制文件

问题描述 投票:1回答:4

我正在尝试制作批处理/脚本文件,该文件将重复将文件从一个位置复制到另一个位置。我不在乎它是否覆盖文件,或者如果文件存在则不会复制。但是我想要一个在循环中复制文件的批处理文件。

如何制作批处理文件以重复复制文件?

loop:
copy /y a.txt c:/b.txt
Goto loop

它运行一次

让我感到惊讶的是,如果不对我的问题进行改进,人们会对一个问题进行投票。我认为人们对他们不知道答案的问题表示不错。

batch.bat:

rere:
copy /y c:\folder1\abc.txt c:\folder2\abc.txt
pause
goto rere

双击batch.bat enter image description here时的输出

loops batch-file copy repeat
4个回答
0
投票
:loop
copy file1 file2
Goto loop

是如何。见goto /?copy /?


2
投票

rere造成错误的原因是因为你应该将goto rere改为goto :rere。阅读This它解释了goto:eof本质上是一个循环。

另请检查此代码

@echo on
:loop
setLocal EnableDelayedExpansion 
set source="%UserProfile%\Desktop\source\"
set target="%UserProfile%\Desktop\destination\
for /f "tokens=*" %%a in ('dir %source%\*.* /b /s') do (
set B=%%a
set C=!B:\=%random%!
set D=!C:~3,88!
copy "%%a" %target%\"!D!"
)
goto :loop

它一遍又一遍地复制相同的文件,每次在循环中更改文件名。尝试一下,给我一些反馈,我想稍微改进一下。这是一个非常可怕的小脚本XD


1
投票

Noodle实施的一个小变化(不公平地投票):

@echo off
:loop
copy file1 file2
rem The 'timeout' line will wait for 1 sec between copy attempts
rem Remove the 'rem ' statement from the line to use this feature
rem timeout 1 > nul
goto loop

请注意Noodle的代码有效;你必须小心正确地复制最后一条指令。


0
投票

这是您在循环中复制文件而不会覆盖目标文件的方式。此批处理脚本在目标文件夹中创建具有唯一名称的文件,如file1.txt,file2.txt等。

@echo off
SET i=1
:loop
SET /A i=i+1
echo %i%
copy c:\test\abc.txt c:\test\file%i%.txt
Goto loop
© www.soinside.com 2019 - 2024. All rights reserved.