Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 是否使用Start命令启动另一个具有多个参数的批处理文件?_Batch File_Call_Self Updating - Fatal编程技术网

Batch file 是否使用Start命令启动另一个具有多个参数的批处理文件?

Batch file 是否使用Start命令启动另一个具有多个参数的批处理文件?,batch-file,call,self-updating,Batch File,Call,Self Updating,是否可以使用start命令启动另一个批处理文件并传递多个带空格的参数 以下是我的程序目前的工作方式: 主程序启动>查看其过期>调用更新程序(data1.exe)>更新程序复制新版本>它试图删除旧版本,但无法删除。从调用更新程序时起,旧版本仍被标记为正在使用。 这就是call命令无法工作的原因。那么我需要使用start吗?那怎么办 这是原始代码行。。。调用更新程序并传递变量的程序: call "%dirofbatch%data1.exe" "%downloc%" "%dirofbatch%" "%

是否可以使用start命令启动另一个批处理文件并传递多个带空格的参数

以下是我的程序目前的工作方式:

主程序启动>查看其过期>调用更新程序(data1.exe)>更新程序复制新版本>它试图删除旧版本,但无法删除。从调用更新程序时起,旧版本仍被标记为正在使用。

这就是call命令无法工作的原因。那么我需要使用start吗?那怎么办

这是原始代码行。。。调用更新程序并传递变量的程序:

call "%dirofbatch%data1.exe" "%downloc%" "%dirofbatch%" "%lver%" "%lget%"
我被难住了


编辑:我应该提到“data1.exe”只是一个可执行的批处理文件。

如何读取批处理文件中的参数:

  • 呼叫批处理

    start "" "%dirofbatch%data1.exe" "%downloc%" "%dirofbatch%" "%lver%" "%lget%"
    
  • 称为批处理

    set "parm1=%~1"
    set "parm2=%~2"
    set "parm3=%~3"
    set "parm4=%~4"
    echo %parm1% %parm2% %parm3% %parm4%
    

  • 如何读取批处理文件中的参数:

  • 呼叫批处理

    start "" "%dirofbatch%data1.exe" "%downloc%" "%dirofbatch%" "%lver%" "%lget%"
    
  • 称为批处理

    set "parm1=%~1"
    set "parm2=%~2"
    set "parm3=%~3"
    set "parm4=%~4"
    echo %parm1% %parm2% %parm3% %parm4%
    

  • 是否要删除正在运行的程序(“主程序”)?您应该显示批处理中的更多代码。确切地说,
    %dirofbatch%
    是什么。是的,我想使用主程序的更新版本并删除旧版本,该版本显然仍在运行。2.%dirofbatch%本质上是“%~dp0”。Windows不允许删除正在运行的应用程序。这就是为什么我问“start”命令是否可以改为工作的原因。start命令在单独的窗口中启动指定的程序。那么,我如何将这4个变量传递给更新程序呢?是否要删除正在运行的程序(“主程序”)?您应该显示批处理中的更多代码。确切地说,
    %dirofbatch%
    是什么。是的,我想使用主程序的更新版本并删除旧版本,该版本显然仍在运行。2.%dirofbatch%本质上是“%~dp0”。Windows不允许删除正在运行的应用程序。这就是为什么我问“start”命令是否可以改为工作的原因。start命令在单独的窗口中启动指定的程序。那么我如何将这4个变量传递给更新程序呢?我想你可能有点困惑:PI不能使用call命令,因为它使调用程序保持活动状态。。。因为调用程序仍然处于活动状态,我无法删除它。我需要知道如何使用START命令而不是CALL命令将变量传递到第二批处理文件(data1.exe),以便更新程序在单独的窗口中运行。工作非常完美。非常感谢,先生!我想您可能有点困惑:PI不能使用call命令,因为它使调用程序保持活动状态。。。因为调用程序仍然处于活动状态,我无法删除它。我需要知道如何使用START命令而不是CALL命令将变量传递到第二批处理文件(data1.exe),以便更新程序在单独的窗口中运行。工作非常完美。非常感谢,先生!