Как установить переменную в одном bat-файле и отправить в другой? - PullRequest
1 голос
/ 07 мая 2019

У меня есть два bat-файла, программа 1 работает, поэтому, когда пользователь вводит «имя файла», он открывает файл и редактирует его.Однако я также хотел бы сделать так, чтобы, если программа 2 открылась, а имя пользователя просто ввело имя файла, она отправит эту переменную в программу 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 Ответ

1 голос
/ 07 мая 2019

Чтобы передать переменную, вам нужно использовать ее в качестве аргумента:

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/

EDIT

Это если с: Пакетный анализ каждого параметра

Команда SHIFT сдвигает аргументы влево, пока их больше нет. Поэтому после вызова% 1% 2 становится% 1 и т. Д.

@ECHO OFF
:Loop
IF "%1"=="" GOTO Continue
   ECHO %1
SHIFT
GOTO Loop
:Continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...