Возьмите параметр строки cmd и выведите его, если это переменная окружения - PullRequest
0 голосов
/ 21 октября 2018

Так что это может показаться бессмысленным, но я делаю это, чтобы попытаться улучшить мое понимание того, как работают параметры и как переменные могут храниться друг в друге.

То, что я пытаюсь сделать, этоthis:

- Фактический пакетный файл -

@echo off
if "%1" == "/?" ( echo blah blah help etc.)

if not "%1" == "/?" ( echo %%myvar%%)

- конец пакетного файла -

- введите приглашение cmd -

C:> sim.bat username  
Hsu (i.e. returns the env username)
C:>

- команда выхода из cmd -

Причина, по которой я хочу сделать %% myvar %%, заключается в том, что я хочу передать параметр в качестве переменной среды.Так что имя пользователя sim.bat os или sim.bat будет тянуть переменную окружения.

Глупо, я знаю, но я смог написать это по-другому, но это долго и утомительно:

if "%1" == "homedrive" (echo %homedrive%)
if "%*" =="homeshare" (echo %homeshare%)

... и так далее, и так далее

Я посмотрел в нескольких местах, и возможно, я просто не до конца понимаю, но я пытаюсь учиться, поэтому спасибо заранее!

1 Ответ

0 голосов
/ 21 октября 2018

Возможно, что-то из этого поможет вам:

@If Not "%~1"=="" If Not "%~1"=="-?" If Not "%~1"=="/?" If Defined %~1 GoTo Start
@Echo usage/help message& Timeout 2 /NoBreak>Nul& Exit /B
:Start
@Echo Off
Call Echo %%%~1%%& Pause

... или с отложенным расширением:

@If Not "%~1"=="" If Not "%~1"=="-?" If Not "%~1"=="/?" If Defined %~1 GoTo Start
@Echo usage/help message& Timeout 2 /NoBreak>Nul& Exit /B
:Start
@Echo Off& SetLocal EnableDelayedExpansion
Echo !%~1!& Pause
...