如何在一个 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
我有两个 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