windows - 批处理文件范围

标签 windows batch-file

非常感谢您的帮助!我有一个批处理文件问题要问你们。所以我们跟上我们客户的一个备份。他们距离我们 200 多英里。我们通过远程桌面带来他们的备份。我们发现通过命令提示符使用复制功能比任何其他复制/粘贴方法都快得多。负责带他们过来的人经常忘记这样做。我才刚刚开始使用批处理,但我创建了一个小的批处理程序,它会询问用户要带哪个文件,这样他就不必“复制 n:\backups\blah\tsclient\h\backups\blah”这可能很容易出错。以下是批处理文件:

@echo off
title Copy Zipbacks

:loopagain
set /p date=Enter the date that needs to be copied over (yyyymmdd format):
copy h:\zipbackups\daily%date%.zipx \\tsclient\h\benton_off_site_backup\zipbackups

set /p again=Copy Another Daily Zip file? (Y/N):

IF "%again%"=="Y" GOTO loopAgain
IF "%again%"=="N" GOTO goAway

:goAway
exit

如果只有少数备份要带过来,这很好。我的问题是这样的;有没有办法带来一系列备份?该文件设置如下:

dailyYYYYMMDD.zipx
i.e. daily20140917.zipx

我在询问日期范围时没有问题,但是让 .bat 循环遍历文件夹并仅获取满足条件的那些是我遇到的问题。有什么想法吗?

最佳答案

您可以使用for 来枚举文件:

@echo off
title Copy Zipbacks

:loopagain
set /p start_date=Enter start date that needs to be copied over (yyyymmdd format):
set /p end_date=Enter end date (yyyymmdd format) or nothing to match only start date:
if not defined end_date set end_date=%start_date%
for %%f in (h:\zipbackups\daily*.zipx) do if "%%~nf" geq "daily%start_date%" if "%%~nf" leq "daily%end_date%" copy %%f \\tsclient\h\benton_off_site_backup\zipbackups

set /p again=Copy Another Daily Zip file? (Y/N):

IF "%again%"=="Y" GOTO loopAgain
IF "%again%"=="N" GOTO goAway

:goAway
exit

关于windows - 批处理文件范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899594/

相关文章:

windows - 使用命令行更改键盘输入

PHP session 在登录后似乎不起作用! Wamp - 创建/登录 4 个 session ?

windows - 如何从 Perl 设置 Windows PATH 变量?

windows - SET 命令 - float ?

windows - 是否可以在脚本中重定向批处理文件的输出?

linux - 批量编写远程 SSH 命令脚本的最佳方式 (Windows)

batch-file - windows批处理脚本来解压文件

python - ctypes中的编译器依赖

c++ - 如何在事件窗口之外进行C++输入?

windows - 将文件移动到新目录的批处理命令