使用Windows批处理文件复制文件并删除重复项

时间:2012-06-25 14:02:26

标签: batch-file notepad

我正在尝试通过记事本制作批处理文件,以实质上自动化将文件从驱动器移动到驱动器的过程。

我的目标是将文件从我的H驱动器移动到我的A驱动器,H:\Arco\examplefile.csv\A:\DSE\Open_Access_Data\ARCo

如果可能的话,我还想让这项工作每30分钟自动运行一次。但如果我需要点击它,那就这样吧。到目前为止,我所要做的就是将文件复制到我的桌面。我似乎无法让它介于我的目录之间。

COPY H:\dehpc14_Disk_Quota_Report.csv %userprofile%\Desktop

2 个答案:

答案 0 :(得分:1)

这应该有效:

:LOOP
copy H:\Arco\examplefile.csv A:\DSE\Open_Access_Data\ARCo /y
timeout /t 1800
goto :LOOP

这将每30秒复制一次文件并覆盖任何现有文件。

注意:timeout命令仅适用于Vista及以上版本,如果你需要在XP上使用它,请告诉我。

要在系统启动时启动批处理文件,您可以将其放在用户的启动文件夹中或使用注册表。

当前用户的启动文件夹是

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

适用于所有用户

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

或者你可以使用我个人喜欢的注册表。使用

中批处理文件的路径创建字符串值

当前用户

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

电脑用户

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

两个注册表选项都需要管理员权限。

分别批量启动或注册

copy %0 "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" /y

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "MyBatchFile" /d "%0" /f

每次运行时,它会将自身复制到启动或将其自身添加到注册表。因此,您可以手动执行此操作,也可以在首次运行时自行执行此操作(上述命令)。

%0是批处理文件自己的路径,如果要使用来自其他地方的命令,或者仅使用cmd,则输入批处理文件的完整路径。

答案 1 :(得分:0)

在Unix中使用cron之类的命令来设置定时间隔以运行自动副本等程序。有关Windows的类似cron的版本,请参阅Stack Overflow问题 What is the Windows version of cron?

要从一个驱动器复制到另一个驱动器,请使用

copy filepath1 filepath2

其中filepath1H:\path-to-filefilepath2A:\path-to-file