相关疑难解决方法(0)

使用 setx 克服 1024 个字符的限制

我正在尝试使用setx命令设置环境变量,如下所示

setx PATH "f:\common tools\git\bin;f:\common tools\python\app;f:\common tools\python\app\scripts;f:\common tools\ruby\bin;f:\masm32\ bin;F:\Borland\BCC55\Bin;%PATH%"

但是,如果值超过 1024 个字符,我会收到以下错误:

警告:正在保存的数据被截断为 1024 个字符。

成功:指定的值已保存。

但是最后的一些路径没有保存在变量中,我猜是由于错误提示的字符限制。

windows-7 environment-variables windows-server-2008-r2

89
推荐指数
4
解决办法
10万
查看次数

如何在 Windows 7 中永久更改命令提示符?

我想将提示更改为$p$g$_$f永久,但每次重新打开命令窗口时它都会自行重置。

我怎样才能让它永远保持不变?

windows-7 command-line

76
推荐指数
4
解决办法
2万
查看次数

是否有任何命令行工具可用于在 Windows 中编辑环境变量?

是否有任何命令行工具可用于在 Windows 中编辑环境变量?

如果这是智能工具就好了,例如:

  • 当添加一些路径以假设 PATH 变量并且该路径已经存在时,不应将此条目加倍。
  • 应该可以在其他路径之前/之后或以特定顺序(第一个、第 7 个、最后一个等)插入到 PATH 变量的新路径。
  • 应该可以仅更改变量值的一部分(在 PATH 的情况下是所有路径列表中的给定路径)。

最后但并非最不重要的 -我希望我的更改在会话之间保持不变,所以简单的 SET 是不可能的......

有一个非常好的 GUI 工具,叫做路径编辑器,我需要这样的东西,但对于命令行。

windows command-line environment-variables

15
推荐指数
4
解决办法
2万
查看次数

Chocolatey 作为非管理员用户

我开始在我酒店的网络中使用 Chocolatey 来安装软件。我在 Win 2008 上设置了一个域,但我的所有用户都不是管理员。

所以,假设我有一个用户 JOE,它不是域的管理员(也不是在机器上)和一个用户 PETER,它是两者的管理员,并且我以 JOE 身份登录。当我以管理员身份打开提示(或 powershell)时,Windows UAC 要求输入管理员用户名/密码。所以我用 PETER 的凭据填充它。然后我可以安装 Chocolatey (in C:\ProgramData\Chocolatey) 并在C:\ProgramData\Chocolatey\libs. 这很好。

如果该应用程序是为所有用户安装的(例如 Sublime Text 3,安装在C:\Program Users文件夹中),则一切正常。但是,当我运行“单用户”安装(例如 Wunderlist,安装在C:\Users\USERNAME\AppData\...)时,它会安装在 PETERAppData而不是 JOE 上AppData

如果我手动运行安装程序,它会要求我提供 PETER 的凭据,但该应用程序安装在 JOE 的用户路径中。

我可以用 Chocolatey 得到同样的行为吗?我做错了什么还是可以以某种方式解决这个问题?

windows uac powershell chocolatey

10
推荐指数
1
解决办法
2万
查看次数

在通过 Windows 批处理脚本生成的 shell 中设置多个环境变量

我有一个批处理文件,它使用以下命令生成一个带有修改路径的 shell:

cmd /K set PATH=%PATH%;<additional path locations>
Run Code Online (Sandbox Code Playgroud)

我还想为生成的 shell 设置额外的环境变量。有没有办法做到这一点?

windows command-line batch-file

9
推荐指数
1
解决办法
3万
查看次数

有没有办法从命令行永久设置 Windows 环境变量

可能的重复:
从命令提示符设置和获取 Windows 环境变量?

有什么方法可以从 Windows 的命令行永久设置系统范围内的环境变量?

就像是

>systemset newVar=foo
Run Code Online (Sandbox Code Playgroud)

或者要编辑的文件也可以很好地工作。

windows command-line environment-variables

8
推荐指数
1
解决办法
9500
查看次数

在一行中临时设置 Windows cmd 的环境变量以运行程序?

我见过从命令提示符设置和获取 Windows 环境变量吗?,但我的问题略有不同。

假设我有一个终端程序myprogram.c-> myprogram.exe,它读取环境变量;说:

...
char *valueMYVAR = getenv("MYVAR");
printf("MYVAR is %s\r\n", (valueMYVAR==NULL)?"":valueMYVAR );
...
Run Code Online (Sandbox Code Playgroud)

现在,如果我在 Linux 中bash,我可以临时设置环境变量,只是为了程序的执行,只需在命令行上写出来,如下所示:

$ MYVAR=1 ./myprogram.exe
Run Code Online (Sandbox Code Playgroud)

如果我使用的是 Windows 命令提示符 ( cmd.exe) ,我怎么能做同样的事情?我试过了:

> SET MYVAR=1 myprogram.exe
Run Code Online (Sandbox Code Playgroud)

...但它不起作用 - 从myprogram.exe根本不运行的意义上说,可能被解释为命令的命令行的一部分SET

这种事情在 Windows 命令提示符中可行吗?如果相关,我使用 Windows 10。


编辑:发现这些:

在 WINdows CLI 中是否有类似命令替换的东西?

在 Windows 中,'( )' 运算符的行为与 Bash 命令替换类似。

/sf/ask/563876001/

自 2000 年以来在所有 Microsoft 操作系统上都是这样,今天仍然很好:
dir & echo foo

所以,我试过:

> (SET MYVAR=1 && myprogram.exe) …
Run Code Online (Sandbox Code Playgroud)

windows command-line environment-variables

7
推荐指数
1
解决办法
1万
查看次数