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

时间:2019-05-06 23:12:59

标签: batch-file variables send

我有两个bat文件,程序1正在运行,因此当用户输入“文件名”时,它将打开文件并进行编辑。 但是,我也想这样做,如果程序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是否发送了一个变量,如果不能继续正常运行的话

1 个答案:

答案 0 :(得分:1)

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

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