如果是来自用户输入的声明,则批处理文

时间:2013-07-23 14:22:41

标签: windows batch-file batch-processing

这里全新,脚本全新。所以,我正在努力解决这个问题,我知道我不应该这样做。

我有一个批处理文件,目前正在扫描和解压缩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文件,其中任何商家日期都不匹配。这有任何意义吗?任何帮助将不胜感激。

非常感谢。

2 个答案:

答案 0 :(得分:0)

你提出了几个问题,所以我没有写一个批处理脚本,而是认为我应该将其分解,以解释它将如何回答你的问题:

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

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

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

有很多教程,这里有一个引导您完成batch file scripting

的教程

答案 1 :(得分: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 (全部出现在同一物理线路上至关重要。