1

这里是全新的,对脚本来说也是全新的。所以,我正在为此苦苦挣扎,我知道我不应该这样。

我有一个当前扫描和解压缩 zip 文件的批处理文件。我要做的就是在顶部添加一个 Business Date 输入行,然后可以在拆包中引用它以确保日期正确。这是存在的文件(我添加了用户输入只是不知道如何引用它):

echo off
:Ask
echo Please enter Business Date (MMDDYYY)
set INPUT=
set /P INPUT=Type input: %=%


c:
cd\502
erase *.prn
7z e "\\svr-dc\ftp site\502\daily\data1.zip"
copy sz*.* sales.xls
copy sc*.* cosales.xls
copy aj*.* money.xls
copy cc*.* count.xls
pause

我不想在那里暂停,我想让文件遍历所有目录,它们是 502 到 607,并告诉我文件名是否在. 与用户输入的营业日期相同。然后,运行其他目录做同样的事情。一旦确认我希望打开一个包含任何不匹配的营业日期的 .txt 文件。这有任何意义吗?任何帮助,将不胜感激。

非常感谢。

4

2 回答 2

0

你问了几个问题,所以我认为我应该分解它来解释它如何回答你的问题,而不是编写一个批处理脚本:

1-%INPUT%用于引用您的变量/用户输入

2-如果你总是有 502 到 607,那么你可以使用 for 循环遍历它们 FOR /L %%G IN (502,1,607) DO echo %%G

3- 要检查是否存在与用户输入值相同的文件/文件夹,请使用if EXIST %INPUT%语句

那里有很多教程,这里有一个指导您完成批处理文件脚本

于 2013-07-23T14:42:49.540 回答
0
...
c:
FOR /L %%X in (502,1,607) DO (
 cd\%%X
 erase *.prn
 7z e "\\svr-dc\ftp site\%%X\daily\data1.zip"
 copy sz*.* sales.xls
 copy sc*.* cosales.xls
 copy aj*.* money.xls
 copy cc*.* count.xls
)

您将用于%input%访问作为 INPUT 输入的值,但您不知道如何"to make sure the dates are correct."


嗯 - 提供更多信息(也许......)

...
c:
FOR /L %%X in (502,1,607) DO (
 cd\%%X
 erase *.prn
 7z e "\\svr-dc\ftp site\%%X\daily\data1.zip"
 if exist sz%input%*.prn ( 
  copy sz*.* sales.xls
  copy sc*.* cosales.xls
  copy aj*.* money.xls
  copy cc*.* count.xls
 ) else (
  echo Repoll %%X First>>C:\Users\Boster\Desktop\RePoll.txt
 )
)

至关重要的是,(出现在与 相同的物理行上,if并且) else (所有出现在同一物理行上。

于 2013-07-23T19:07:21.703 回答