cmd环境变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmd环境变量?相关的知识,希望对你有一定的参考价值。

可以用变量名查找变量值,那可不可以反过来呢?谢谢

反过来,也是可以的。这时候就需要用for+find/findstr配合了。
假设已经设置好了一个变量名为abc,变量值为x:\xyz
但我们不知道变量名,但知道变量值的情况下,那么代码如下
for /f "tokens=1 delims==" %%a in ('set ^| findstr /c:"x:\xyz"') do echo x:\xyz 的变量名为 %%~a来自:求助得到的回答
参考技术A 反过来?那没啥意义。
变量之间,一定不会重复,可是值说不定就有重复的。
所以……
参考技术B 以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 根据变量值查找对应的变量名
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set a=1
set b=1
set c=2
for /f "tokens=1* delims==" %%a in ('set') do (
if "%%b" equ "1" echo;%%a
)
echo;%#% +%$%%$%/%@% %z%
pause
exit
参考技术C win7
桌面"我的电脑"右键"属性",出来的框左边选"高级系统设置",弹出小框选"高级"
,在下面有"环境变量",点击"环境变量"

在 CMD 中使用环境变量

【中文标题】在 CMD 中使用环境变量【英文标题】:Use environment variables in CMD 【发布时间】:2014-05-29 01:39:59 【问题描述】:

我可以在 Dockerfile 的 CMD 节中使用环境变量吗?

我想做这样的事情:

CMD ["myserver", "--arg=$ARG", "--memcache=$MEMCACHE_11211_TCP_ADDR:$MEMCACHE_11211_TCP_PORT"]

$MEMCACHE_11211_TCP_* 将通过包含我的docker run 命令的 --link 参数自动设置。并且 $ARG 可以由用户在运行时配置,也许可以通过“-e”参数?

这似乎对我不起作用,例如,它似乎实际上是通过字符串“$ARG”。

【问题讨论】:

【参考方案1】:

这个答案可能有点晚了。但是 CMD 的环境会根据您编写参数的方式略有不同。如果您将CMD 作为字符串(不在数组内)传递,它将作为shell 而不是exec 启动。见https://docs.docker.com/engine/reference/builder/#cmd。

您可以尝试不使用数组语法的 CMD 作为 shell 运行:

CMD myserver --arg=$ARG --memcache=$MEMCACHE_11211_TCP_ADDR:$MEMCACHE_11211_TCP_PORT

【讨论】:

如果您使用CMD string 方法,当您使用docker run my-imageCtrl-C 可能会停止工作,因为shell 获取中断而不是由CMD 启动的进程。 【参考方案2】:
CMD ["sh", "-c", "echo $MY_HOME"]

来自 sffits 的回答 here。

【讨论】:

【参考方案3】:

两个安迪都说对了。 json 语法绕过入口点。当您在他们的示例中使用 CMD 时,它被视为默认入口点的参数:/bin/sh -c,它将解释环境变量。

在这两种情况下,Docker 都不评估 CMD 中的变量。前者直接调用命令,不解释,后者由sh解释变量。

【讨论】:

【参考方案4】:

我无法说明它是如何工作的,应该,但我认为如果你将其称为 shell 脚本,例如CMD runmyserver.sh,那么 shell 变量的解释将推迟到 CMD 实际运行。

所以,试试

myserver --arg=$ARG --memcache=$MEMCACHE_11211_TCP_ADDR:$MEMCACHE_11211_TCP_PORT`` 

作为 shell 脚本?

【讨论】:

以上是关于cmd环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过cmd查看环境变量

cmd里面如何分别查看系统环境变量和用户环境变量?

windows环境变量如何在cmd中打印

java环境变量设置路径成功后在cmd中还是存在问题

为啥为了Java改变环境变量后不能运行CMD中的命令

python需要配置环境变量吗