问题标签 [powershell-v6.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何创建运行命令的函数?
所以我想做的是重新创建一个与我在 Bash 中使用的类似的函数,但在 Powershell 中:
我目前最感兴趣的部分是这里的 try() 函数。本质上它的作用是允许我用这个函数包装一个命令并让它管理退出代码。效果是这样的:
如果doSomething
以非零值退出,它会将命令输出到 stderr 并停止脚本执行。
我意识到 Powershell 有一个可用于中止脚本的错误操作,但它似乎只适用于命令行开关。我需要一些可以在整个脚本中使用的东西。我还希望避免大量冗长的 try/catch 逻辑使脚本变得混乱,因此需要像 try/yell/die 这样优雅的东西。这样,我可以单独在这个函数中编写处理,并使用它来调用我想要处理的任何内容。
我发现$MyInvocation
并认为这可能是进入的方式,但我似乎无法找到从函数中实际执行它的方法。例如:
我想我可以自己弄清楚其余的,我只是不太清楚如何编写这个包装函数。有任何想法吗?
更新
所以我做了一些俗气的事情,我对命令进行了子串化,并对Invoke-Expression
剩下的内容做了一个,它似乎有效。感觉超级hacky,所以我仍然对想法持开放态度:
powershell - 上传前获取项目和设置内容类型
我一直在尝试在 PowerShell 中构建一些代码(PowerShell 6 Core 有效,以下代码在 PowerShell 5 中无效),
这很好用并且可以上传文件,但是我还需要添加Content-Type: "image/png"
到我的Get-Item
项目中 - 有没有简单的方法可以做到这一点?
Add-Member
我还尝试通过构建多部分表单来以另一种方式做到这一点,我已经看到其他人在 StackOverflow 上使用过,但是我现在遇到另一个问题,当我尝试使用或使用任何其他表单时,我无法添加到多部分表单中追加到表单的方法。
对于如何使用文件上传和其他参数构建多部分表单或将内容类型附加到 Get-Item 调用的任何帮助,将不胜感激。只是为了让您了解 Python 中的代码是什么样的(容易得多):
powershell - Powershell合并来自不同文件的2列,没有关键字段
我有 2 个 csv 文件,并且有 file1.column1、file1.column2、file2.column1、file2.column2。我想像下面这样
文件1:
文件2:
我期待的输出是:File3:
powershell - 启动 Visual Studio for Mac 时加载 PowerShell 模块以进行调试
我正在使用 Visual Studio for Mac(7.7.2;内部版本 21)使用 C# 创建 PowerShell 提供程序。
我想让 IDE 加载 PowerShell 进行调试。
项目的运行配置:
- 启动外部项目:
/usr/local/bin/pwsh
- 论据:
-NoProfile -NoExit -File "./InstallProvider.ps1"
InstallProvider.ps1
:
PsMyModule.psd1
:
两个文件 ( ps1
, psd1
) 都被标记Copy to output
。
当我在调试模式下运行项目时,我收到此错误:
参数“./InstallProvider.ps1”未被识别为脚本文件的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
用法:pwsh[.exe] [[-File] [args]] [-Command { - | [-args] | [] } ] [-ConfigurationName ] [-EncodedCommand ] [-ExecutionPolicy ] [-InputFormat {Text | XML}] [-Interactive] [-NoExit] [-NoLogo] [-NonInteractive] [-NoProfile] [-OutputFormat {Text | XML}] [-Version] [-WindowStyle] [-WorkingDirectory]
PowerShell 联机帮助https://aka.ms/pscore6-docs
所有参数都不区分大小写。应用程序被未知信号终止:当前平台不支持此值。参数名称:value 实际值为 64。
但是,当我pwsh
从终端运行时,它按预期加载了模块:
这些变体都不起作用:
-File ".\InstallProvider.ps1"
-File InstallProvider.ps1
-File "./InstallProvider.ps1"
** 编辑 0 **
我将File
参数更改为"/Users/[user]/Projects/Visual Studio 2017/PsMyModule/bin/Debug/netstandard2.0/InstallProvider.ps1"
似乎没有正确解释相对路径。此外,提示PS \>
似乎不接受输入。
** /编辑 0 **
** 编辑 1 **
我在 Visual Studio 2017 for Windows 中创建了一个类似的项目。调试设置:
它按预期加载了模块:
** /编辑 1 **
我错过了什么?OS X 版本有什么不同?
powershell - 如何将字符串复制到剪贴板Powershell?Linux/Windows/Mac
我正在编写一个旨在分发的powershell模块,我正在寻找一个跨平台(Win / Linux / MacOS)的powershell≥5.0
解决方案来将生成的字符串复制到系统的剪贴板。
环境
Set-Clipboard
Write-Clipboard
Out-Clipboard
iis - 试图将数据组合成一行
我为一家拥有一些负载平衡的 Web 服务器的公司工作。我创建了一个 PowerShell 脚本,它针对我们所有的 IIS 服务器并提取 500 个错误条目,然后提取客户端 IP 地址,并显示该客户端 IP 地址导致 500 错误的次数(是的,我知道我们可以为此使用 LogParser - 但这是帮助学习一些基本 PowerShell 技能的借口)。
现在,我的输出显示了 Web 服务器名称、计数和 IP 地址。理想情况下,我希望计数汇总所有 Web 服务器的计数并显示 IP 地址。我已经包含了下面的代码,包括实际输出和所需的输出。
期望的输出:
实际输出:
azure - 如何计算 Azure VM 中的内存总数
我有 Azure 帐户,我需要知道所有 VM 中安装了多少内存。对于核心数,我使用以下命令。
但是我怎样才能获得内存详细信息?
powershell - PowerShell 无法在系统清理后“点源”配置文件
我有一个问题,PowerShell 将不再运行我的 Microsoft.Powershell_profile.ps1/Profile.ps1 脚本,说明它不能“点源”文件。这是在我在我的机器上运行注册表清理器和系统优化器之后开始的。现在,我无法弄清楚哪些设置已更改、添加或撤销。
注意事项:
- 由于尝试“点源”,控制台始终默认为“ConstrainedLanguage”
- 我尝试将 -ExecutionPolicy 设置为“Unrestricted”和“RemoteSigned”无效
- 版本 5 和 6 中都存在问题
- 如果我在 VS Code 中运行“PowerShell 集成控制台”,而不是在终端窗口中,它运行良好,显示“FullLanguage”
- 配置文件的内容无关紧要 - 如果我使用空文件,它仍然不会运行。
- 将“Microsoft.Powershell_profile.ps1”放在“\documents”文件夹中不会产生“点源”错误,但它也无法识别配置文件脚本中的任何命令。
我尝试过的事情:
- 通过 $ExecutionContext.SessionState.LanguageMode = 0 设置为“FullLanguage”会导致“无法设置属性。仅在此语言模式下的核心类型上支持属性设置。”
- 在“HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\”的注册表中将“__PSLockdownPolicy”属性设置为 0 对 v5 没有任何作用,并且会导致 v6 崩溃
- 在 $home、"\documents" 和 $pshome(位置取决于版本)之间移动配置文件无效(上述例外)
- 调整“Microsoft.Powershell_profile.ps1”和“Profile.ps1”之间的名称(通常调整以匹配目标受众(例如“所有用户”),但我正在尝试变化以希望成功)
- 卸载并重新安装不同的 5.x 和 6.x 版本无效
- 运行“Powershell -noprofile”不会加载配置文件,所以没有错误但仍然在“ConstrainedLanguage”中运行
- 已验证 AppLocker 未运行/没有适当的规则
- 已验证受控文件夹访问已关闭
任何帮助,将不胜感激。
powershell - PowerShell 6.1.3 无法识别任何 PackageManagement cmdlet
我已经安装了 PowerShell 6.1.3 并尝试运行一些命令,例如:
或者
然后我收到以下错误:
我该如何解决这个问题?