如果我从新的命令提示符运行,批处理文件无法正常运行

时间:2017-08-02 17:41:55

标签: batch-file cmd

我编写了一个批处理文件,用于清理我的一个项目工作的恢复文件以进行测试。脚本解释如下:

  1. 它将运行一个可执行文件,它将一个dll文件作为参数,然后运行一个进程。

  2. 如果在进行某些计算之前该进程被终止,则会创建恢复文件。

  3. 此处我的脚本将在清理恢复文件后始终加载dll,以避免通过访问特定路径手动删除文件。

  4. 要制作通用,批处理脚本会将dll路径和dll名称存储在文本文件中,并自动选择路径。

  5. 以下是批处理脚本代码:

    @echo off
    ::Display the information first time if variables not set. Store them for future retrieval
    set "currPath=%cd%"
    if exist dllPath.txt (
        set /p dllPath<=dllPath.txt
    ) else (
        set /p dllPath="Provide game dll path (1st time only): "
        ::save the environment variables
        echo %dllPath% > "dllPath.txt"
    )
    
    if exist dllName.txt (
        set /p dllName<=dllName.txt
    ) else (
        set /p dllName="Provide game dll name (1st time only): "
        ::save the environment variables
        echo %dllName% > "dllName.txt"
    )
    
    
    ::clean the data
    cd /D %dllPath%
    @echo %dllPath%
    del *.bin
    del *.recovery
    
    %dllPath%\..\..\RunProcess.exe -dll %dllPath%\%dllName% 
    cd /D %currPath%
    

    脚本问题

    1. 首次从命令提示符运行脚本时,脚本能够正确地将dll路径和名称正确存储在文本文件中。

    2. 如果我从同一个命令提示符多次运行该脚本,则该过程将成功运行。

    3. 但是,如果我在运行脚本后关闭命令提示符并尝试从新打开的命令提示符运行脚本,则脚本将抛出错误
    4. 该命令的语法不正确。

      我试图谷歌这个并尝试解决它,但不能。这可能是一个愚蠢的问题,但作为批处理脚本的新手,我没有任何其他选择。

1 个答案:

答案 0 :(得分:2)

=放在<之前。

set /p dllName=<dllName.txt