environment-variables

为什么CMD不继承这台机器上的环境变量?
environment-variables

为什么CMD不继承这台机器上的环境变量?

无论出于什么原因,在特定机器上,我的 cmd 进程不会从启动它的父进程继承其环境变量。相反,它会恢复为“默认”环境设置,就像它是通过资源管理器启动的一样。 演示此操作的一个简单方法是打开命令提示符,然后运行set Path=C:\Windows\System32\​​,接着cmd从同一提示符启动另一个进程。然后可以通过运行 查看该变量set Path。 它应该是“C:\Windows\System32”(从启动过程继承)但在我的计算机上它已恢复为我的环境默认值。 你应该看到类似这样的内容: 我得到的却是以下内容: 这可能是什么原因造成的?它似乎...

Admin

返回值使用 SETLOCAL 设置调用函数的批处理文件
environment-variables

返回值使用 SETLOCAL 设置调用函数的批处理文件

SETLOCAL...ENDLOCAL彻底地注入局部变量,以至于尝试计算值并返回值的函数会失败。 通常,这些函数使用for-解析文件和字符串do,并依赖于SETLOCAL enabledelayedexpansion计算值。 多年来,我通过将值传递给临时文件并恢复它来解决了这个问题,如下例所示。 然而……这是 非常 速度很慢,尤其是涉及递归时,因为需要不断进行读/写/创建循环。 甚至由创建的系统范围变量也会SETX失败,因为SETLOCAL会创建并发布本地版本。它是万无一失的~或者看起来是。 多年来,我一直在研究这个问题,这个问题让我一直很头疼。...

Admin

如何让 Linux repo/应用程序在文件系统上“找到自己”?
environment-variables

如何让 Linux repo/应用程序在文件系统上“找到自己”?

我有一个 repo/application/ecosystem,将其称为qux。当 qux 启动时,它需要source qux-master/configure_qux.sh或者可能命中 repo 中的某些脚本。但是,我无法保证qux-master位于何处。也许它在~/foo/qux-master。也许它在 之下/opt。也许它在容器中并且就在根目录 。/qux-master基本上,我希望能够可靠、不可知、以编程方式访问 下的文件路径$QUX_REPO_DIR。 通常是 Linux,通常是 Ubuntu,但我更喜欢跨 POSIX 的解决方案。 我尝试过的...

Admin

有人可以给我介绍一下路径变量的具体作用吗?
environment-variables

有人可以给我介绍一下路径变量的具体作用吗?

我正在阅读教科书,上面说如果我下载 java jdk,我需要设置路径变量。但我已经下载了 java JDK 和 JRE,并且它们完全正常运行。(我正在使用 eclipse)。但是,我对路径变量及其具体作用感到好奇。 ...

Admin

为什么节点或python无法访问用读命令设置的数字变量?
environment-variables

为什么节点或python无法访问用读命令设置的数字变量?

观察:使用操作系统的“读取”实用程序设置的环境变量包含纯数字值,无法在 Python 的os.environ[]结构中或通过节点的process.env结构访问,但 bash 可以访问。 预期的行为是,所有环境变量都可以从应用程序平等访问,无论它们是如何创建的。 如果使用 bash using 语法设置相同的变量export N=12345,则可以访问。似乎使用 read 命令创建的变量与其他变量的创建方式不同,这会干扰 node/Python 解析这些变量的逻辑。 无法从 node/Python 访问的相同变量可以在 bash 命令行中轻松访问,如下...

Admin

复制命令不接受命令行上的变量吗?
environment-variables

复制命令不接受命令行上的变量吗?

如何在批处理文件中使用变量为复制命令提供根文件夹的路径? set destination= "c:\destination folder" mkdir %destination% SET source = "C:\source folder\" SET source_full = "C:\source folder\simple file.txt" rem this doesn't work copy %source%\"simple file.txt" %destination% rem this works copy %source_full% ...

Admin

为什么在 printenv 上我看不到 HOSTNAME 环境变量?
environment-variables

为什么在 printenv 上我看不到 HOSTNAME 环境变量?

在我的 ubuntu 机器上,我运行以下命令: printenv | grep HOSTNAME 当我在终端执行以下操作时不显示任何输出: echo ${HOSTNAME} 显示输出。所以我想知道为什么 printenv 没有显示HOSTNAME环境变量? ...

Admin

%ERRORLEVEL%
environment-variables

%ERRORLEVEL%

尝试自动执行旧程序的一些 DOSBox 脚本,我想通常使用退出代码来errorlevel控制程序流。 输入在hello_db.bat文件中给出: @echo off set msg=Hello echo %msg% dir echo errorlevel = %errorlevel% 然后使用 调用 DOSBox dosbox hello_db.bat。 输出为: Hello {Listing from dir} errorlevel = 因此,%errorlevel%扩展为一个空字符串而不是命令的退出代码dir,而第一个msg变量可以正确扩展。 我怎...

Admin

Mac 终端和 iterm2 中的 Bash shell 不遵守代理环境变量
environment-variables

Mac 终端和 iterm2 中的 Bash shell 不遵守代理环境变量

我有一台运行 MacOS 10.14.6 的 2019 Mac。我已经将其配置为使用我公司的企业代理大约一个月,并且直到最近,各种命令行程序(例如 curl、brew 和 git)的行为都符合预期。 从第一天起,我的 /etc/profile 配置如下: $ cat /etc/profile # System-wide .profile for sh(1) if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi if [ "${BA...

Admin

使用本地环境变量通过 SSH 在远程机器上运行 shell 脚本
environment-variables

使用本地环境变量通过 SSH 在远程机器上运行 shell 脚本

我目前在本地机器上计算一些环境变量$FOO。现在,我有一个由一些命令组成的 SSH 脚本,其中一些命令使用环境变量$FOO,该变量仅在本地机器上设置。 我想在远程机器上运行这些命令但我想替换当地的版本,$FOO这样当 SSH 脚本在我的远程机器上运行时,它将使用本地计算的值$FOO。我需要这样做,因为命令在远程机器上的运行方式取决于$FOO我计算的本地值。 我知道你可以ssh user@remote < script.sh在远程机器上运行本地 shell 脚本,但我不确定如何执行该过程,但我的当地的 $FOO环境变量,如上所述。我不想在本地或远程计...

Admin

混淆了 `printenv` 和 `declare`
environment-variables

混淆了 `printenv` 和 `declare`

我正在使用 macOS。我printenv对 感到困惑declare。 重启后我立即运行这2个命令,无需任何其他后续设置。 printenv输出 PWD=/Users/soplus 这是合理的,因为这是我的登录系统的用户名。 declare -xp输出 declare -x PWD="/private/var/folders/78/ngsn15lj24s72n8hjnj4zkxr0000gn" 我猜这是由 vscode 设置的,我之前运行过“vscode interactive python”。 对于同一个环境变量,这两种设置有什么区别?...

Admin

如何使用 setx 撤消截断的用户环境变量?
environment-variables

如何使用 setx 撤消截断的用户环境变量?

我尝试path使用命令提示符中的命令来更新我的 Windows 8.1 PC 的环境变量setx(我不会再犯这个错误),但 a)没有起作用,并且 b)截断了path 用户环境变量设置为 1024 个字符;现在,环境变量中的最后一项不是有效路径(它在文件夹名称中途被切断),并且未知数量的条目已被删除(我检查了高级系统设置和path 系统环境变量似乎仍然完好无损)。 我的问题是:我怎样才能恢复path 用户环境变量在被截断之前如何工作?我尝试了以下几个答案,包括使用“进程资源管理器”(我相信这不再是一个选项,因为自从发生截断以来我被迫注销,所以当时打开的所有程序...

Admin

使用批处理获取/设置未知文件名变量
environment-variables

使用批处理获取/设置未知文件名变量

我正在开发一个文档导入实用程序,用于从特定位置导入文本文档。文档的文件名未知,我需要找出如何确定文件的名称并将其设为脚本中的临时值,以便它知道文件名是什么,以便最终可以在记事本中自动打开它。我尝试使用它*.txt来查看记事本是否只会打开工作目录中与此过滤器匹配的第一个文件,但它不起作用。将文档复制到工作目录后,如何获取并设置这个未知的文件名变量?这是我目前为该函数编写的代码: @ECHO OFF :CHECK IF EXIST "*.txt" GOTO :AUTOEDIT IF NOT EXIST "*.txt" GOTO :RUN :AUTOEDIT...

Admin