GOTO此时出人意料

时间:2013-08-19 19:13:23

标签: batch-file dos goto

我们正在尝试运行一个自定义的.BAT文件,该文件在Win98下运行良好多年,但我们在周末刚刚安装了一台新服务器,而Win98虚拟机现在显然无法正常工作。所以,我正在尝试设置它,以便它可以通过WinXP命令提示符。我需要更改什么来使其与XP一起使用?

我输入.BAT文件,运行正常。它允许我输入日期,但是当我像往常一样输入日期并点击回车时,我得到“GOTO此时出乎意料”:

:CRLIST.BAT - DAILY C/R DEPOSIT LIST
:
@ECHO OFF
CALL SEARCH
CRDATE.EXE
IF EXIST DEPOS.LS DEL DEPOS.LS
CASHLIST.EXE
CALL QPR DEPOS.LS 2

我在QPR.BAT文件中找到了GOTO。这是QPR.BAT的代码:

:QPR.BAT - COPY SPECIFIED LISTING FILE ( .LS) TO SPECIFIED PRINTER PORT (1-9)
:       WITH FF FOLL'G - LPTx MUST ALREADY BE CAPTURED TO DESIRED PRINTER
:
@ECHO OFF
IF "%1==" GOTO OPERR
IF "%2==" GOTO OPERR
COPY %1 LPT%2
CALL FF%2
GOTO END

:OPERR
ECHO Please re-enter this Print Queue command as follows:
ECHO        QPR  xxxxx.LS  n
ECHO.
ECHO where  xxxxx.LS  is the name of the report listing file,
ECHO  and  n  is the Network Printer No. on which to print.
:END 

我一直在阅读不同的帖子,我尝试将"%1=="更改为"%1"=="",同样更改为%2,然后它会给我一条新消息:

  

系统找不到指定的文件   0个文件被复制。
  系统找不到指定的文件   0个文件被复制。

如果我添加"%%1"=="""%%2"=="",然后在任何地方添加一个额外的%,则会显示:

  

系统找不到指定的文件   系统找不到指定的文件   0个文件被复制。

我是否需要提供其他任何代码?有很多.BAT文件,所以如果我能解决这个问题,他们希望我们可以应用其余的命令。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

@ECHO OFF
IF "%~2"=="" GOTO OPERR
COPY "%~1" LPT%~2: