如何在一个 bat 文件中设置变量并发送到另一个?

How to set variable in one bat file and send to another?

我有两个 bat 文件,程序 1 正在运行,所以当用户输入 "file name" 时,它会打开文件并进行编辑。 但是,我也想这样做,如果程序 2 打开并且用户名只是输入一个文件名,它将将该变量发送到程序 1,然后程序 1 使用该变量来编辑文件而不是要求用户输入文件姓名。

我尝试在程序 2 上创建一个变量,然后使用 %1,但不知道如何从这里继续。

计划 1:

set /p FileName=
If exist %cd%\%FileName% start %FileName%

计划 2:

@echo off
set /p FileName=[FileName]: 
call editor.bat %FileName%

我希望程序 1 检查程序 2 是否发送了一个变量,如果没有继续正常运行

要传递变量,您需要将其用作参数:

bat1.bat

@echo off
set /p filename="Enter Filename: "
bat2 %filename%

bat2.bat

@echo off
echo %1

两个文件必须在同一目录下,否则调用时必须使用绝对路径bat2.bat

%1 是第一个参数,您可以使用多个参数,即 %2%3

延伸阅读: http://www.pcstats.com/articleview.cfm?articleID=1767

示例脚本: https://www.instructables.com/id/5-Cool-Batch-Files/

编辑

如果来自:Batch parse each parameter

SHIFT 命令将参数向左移动,直到不再有为止。所以调用%1后,%2变成%1,等等

@ECHO OFF
:Loop
IF "%1"=="" GOTO Continue
   ECHO %1
SHIFT
GOTO Loop
:Continue