batch-file - 如果是环境变量,则取 cmd 行参数并回显它
问题描述
所以这可能看起来毫无意义,但我这样做是为了增加我对参数如何工作以及变量如何相互存储的理解。
我想要做的是:
--实际的批处理文件--
@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%)
...等等等等
我查看了多个地方,可能我只是不完全理解,但我正在努力学习,所以提前谢谢!
解决方案
也许这些方面的东西会帮助你:
@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
推荐阅读
- ruby - 编写一个添加 Num 总和的序列:Ruby
- android - SVG 包含
Android Studio 内部 - git - 当两者都更新了代码部分时,如何使功能分支与主分支一起更新
- windows - Windows POSIX dll 的名称
- assembly - 我的总和输出没有显示 42 而是“q”
- javascript - 批处理更新在反应中意味着什么?
- python - 在用户定义的函数中处理字符串
- python - 尝试引用项目内 python 文件时出现 ModuleNotFoundError
- android - 如何仅允许经过身份验证的用户在 Firebase Firestore 中创建集合?
- asp.net - ASP.Net MVC 5 中的实时编码