Findstr不适用于SET / P?

时间:2014-02-20 07:31:39

标签: batch-file findstr

我有一个批处理文件,其中部分如下所示:

    rem @echo off
    cd C:\Program Files\CA\AllFusion Gen\GEN\test8.ief\c\
    FINDSTR /C:"'V1600 OPER'"  /C:"'V1714 OPER'" /C:"'V1801 OPER'" /C:"'V1901 OPER'" "MPOAD10C"

上述批处理文件使用上述代码成功运行。但是,当我修改脚本以便用户可以输入两个变量时,如下所示(%path%= test8.ief,%file_name%= MPOAD10C),它会抛出以下错误:

'FINDSTR'不被识别为内部或外部命令,可操作程序或批处理文件。

    rem @echo off
    SET /P path=Enter name of IEF folder:
    echo. && echo.
    SET /P file_name=Enter name of file:
    echo. && echo.
    cd C:\Program Files\CA\AllFusion Gen\GEN\%path%\c
    FINDSTR /C:"'V1600 OPER'" /C:"'V1714 OPER'" /C:"'R18 V1801 OPER'" /C:"'V1901 OPER'" "%file_name%"

我还在环境变量的PATH变量中输入了值“C:\ WINDOWS \ system32”。

我是批处理脚本的新手。请帮忙。提前谢谢。

此致 Mohit Gupta。

2 个答案:

答案 0 :(得分:2)

不要将path用作您自己的变量之一,Windows会使用特定的环境变量来查找可执行文件,例如您刚刚发现的findstr

将其更改为mypath,您的问题就会消失。

答案 1 :(得分:2)

要解决此问题,请使用%PATH%以外的名称来捕获用户的输入。

%PATH%是一个控制where the command interpreter searches for executables的特殊变量。使用%PATH%修改SET /P时,可以更改命令解释程序查找FINDSTR的位置。它在FINDSTR.EXE的新位置找不到%PATH%,因此错误“'FINDSTR'未被识别为内部或外部命令”