首页 > 解决方案 > 如何在一个bat文件中设置变量并发送到另一个?

问题描述

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

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

方案一:

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

方案二:

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

我希望程序 1 检查程序 2 是否已发送变量,如果不正常继续

标签: batch-filevariablessend

解决方案


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

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/

编辑

This if from:批量解析每个参数

SHIFT命令将参数向左移动,直到不再存在。所以在调用 %1 之后,%2 变成 %1,以此类推

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

推荐阅读