在Powershell中设置批处理文件的变量

躁狂症

我有一个bar.cmd用单行命名的批处理文件ECHO %Foo%
如何设置FooPowershell脚本,以便在调用& .\bar.cmd时可以打印Bar

比尔·斯图尔特

在PowerShell中设置环境变量:

Set-Item Env:foo "bar"

要么

$env:foo = "bar"

如果您想以其他方式做到这一点,请阅读此文章:

http://windowsitpro.com/powershell/take-charge-environment-variables-powershell

当您运行cmd.exe在PowerShell中执行Shell脚本(.bat.cmd文件)时,该变量在的运行实例中设置,cmd.exe但在该cmd.exe实例终止时丢失

解决方法:运行cmd.exeshell脚本并输出它设置的所有环境变量,然后在当前PowerShell会话中设置这些变量。本文提供了一个简短的PowerShell函数,可以为您执行此操作:

# Invokes a Cmd.exe shell script and updates the environment. 
function Invoke-CmdScript {
  param(
    [String] $scriptName
  )
  $cmdLine = """$scriptName"" $args & set"
  & $Env:SystemRoot\system32\cmd.exe /c $cmdLine |
    Select-String '^([^=]*)=(.*)$' | ForEach-Object {
      $varName = $_.Matches[0].Groups[1].Value
      $varValue = $_.Matches[0].Groups[2].Value
      Set-Item Env:$varName $varValue
    }
}

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

在批处理文件中定义和使用变量

如何验证批处理文件中是否存在文件?

批处理文件以删除超过N天的文件

批处理文件以从txt文件中删除前18个字符

批处理文件以计数子目录中的文件类型

如何将大于和小于添加到批处理文件变量中

在Windows批处理文件中的SET上使用变量

批处理脚本将变量内容回显到文本文件中

从Java流程执行时,跳过批处理文件中的暂停命令

将2个批处理文件合并为1个,但使它们在2个命令窗口中运行

使用Python运行批处理文件时出现问题

批处理文件,将所有文件内容读入单个文件

Windows批处理文件从定界符之间没有数据的文件读取

批处理文件中的空白,并保存在其他目录中

忽略批处理文件中以#开头的处理行

从批处理文件运行Powershell命令以重命名网络驱动器

如何在批处理文件中提示用户输入

R中的批处理文件中的setwd()

尝试创建批处理文件以将Sharepoint映射为网络驱动器

替换批处理文件变量进给ffmpeg程序中的特殊字符

运行多个批处理文件,但有例外

尽管从命令行调用该批处理文件正常工作,但为什么从快捷方式调用该批处理文件却会立即关闭呢?

从Windows批处理文件调用SUBST

从批处理文件调用脚本时如何指定开关参数

运行时安全修改批处理文件

如何使用批处理文件或PowerShell清除Windows剪贴板?

在批处理文件网址中添加加号

批处理文件中的字符串替换问题

如何通过批处理文件中的时间戳识别/获取文件?