我有两个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是否发送了一个变量,如果不能继续正常运行的话
答案 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