问题标签 [powershell-7.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.

0 投票
1 回答
2411 浏览

json - 从 powershell 中的 JSON 对象中删除一个属性

我有以下 JSON,我想从 Address 下的 JSON 对象中删除街道,这是一个数组。我正在尝试在 powershell 中执行此操作

我想从 JSON 对象中删除街道,这是我的 powershell 脚本,但它不起作用!我正在尝试将 JSON 转换为对象,然后遍历属性以删除它们。

0 投票
1 回答
76 浏览

utf-8 - 在 Powershell 7 中使用 enwik9(来自 UTF-8 多字节字符的子字符串)

我正在使用 Powershell 7 处理 Wikipedia enwik9 1Gb UTF-8 文本文件。我没有使用 Unicode\UTF-8 的经验。我已经将偏移量和值捕获到一个字典中,当我使用下面的代码并增加 $i++ 时,它们似乎成对出现 2,4 和 6。

  1. $line.Length 对这个字符串有效吗?
  2. $i 是一个多字节字符,当它移动到下一次迭代时它仍然有效吗?
  3. 我怎么知道这段代码包含多少个“字符”?是 Substring($i,1) 还是 Substring($i,2) 或者 Substring($i,6)?
0 投票
0 回答
277 浏览

powershell - 在 Powershell 7 中捕获 ForEach-Object -Parallel 中的错误

我正在尝试使用遍历所有数据库的 Powershell 7-Preview 执行 Powershell 脚本(7.0)文件,使用 DACPAC 文件更新它们并在所有数据库中执行其他 SQL Server 脚本。它在没有错误时工作正常,但是,如果在执行 Dacpac 文件时出错,它会给出以下错误并停止进一步执行脚本。

##[错误]无法部署包。 ##[error] PowerShell 以代码 '1' 退出

关于我们如何在 Parallel 语句中优雅地捕获 PowerShell 中的错误并让脚本继续用于其他数据库的任何指针?Try-Catch 块似乎在这里不起作用。

我是 PowerShell 的新手。此 PowerShell 脚本是 DevOps 发布管道的一部分。

0 投票
2 回答
48 浏览

powershell - 使用拆分路径替换基于扩展名的文件

让我先说我在这方面是一个完整的初学者。我正在尝试用占位符替换一堆丢失的文件。问题是有多种文件类型,每种都需要不同的占位符文件。

我正在使用 powershell 7,并且 Split-Path -extension 似乎工作得很好。但我似乎无法使用 if 语句来选择正确的占位符文件。

任何帮助将不胜感激。

0 投票
1 回答
405 浏览

powershell - 如何在 ForEach-Object Parallel 中设置计数器 - PowerShell 7

我在 foreach 块之外定义了一个 int 变量,试图在块内设置它并在外部访问它。但是,当我运行此脚本时,出现以下错误。这似乎是一件基本的事情,但我是 PowerShell 的新手。

错误: “++”运算符仅适用于变量或属性。

脚本

0 投票
1 回答
306 浏览

powershell - Foreach-object Parallel 块中的错误处理 - Powershell 7

在 Foreach-Object Parallel 块下捕获错误的最佳方法是什么,因为将有三个单独的线程/运行空间运行和执行块中编写的代码,并且可能同时发生多个错误/异常?是否可以捕获列表/变量中的所有错误并在脚本执行结束时显示?

0 投票
1 回答
92 浏览

windows - 阻止用户使用 PowerShell 打开已经存在的程序

我想阻止用户使用 PowerShell 在 Windows 中运行 在运行的程序/服务的另一个实例。
例如:我打开了记事本,然后在几分钟内我想禁用打开记事本的选项,因为它已经在运行。

到目前为止,我可以检测程序是否打开,如果没有,我可能会为用户打开它(附加代码)。


但是,如何禁用用户打开另一个相同实例的选项?

任何相同的线索都会有所帮助。

0 投票
2 回答
210 浏览

powershell - 如何使用 New-ScriptFileInfo PrivateData?

我一直在使用一个 PSD1 文件,其名称与脚本文件相同(例如 Foo.ps1 --> Foo.psd1)来存储我的脚本的设置。我在想我也许可以利用脚本的PrivateData部分来存储这些信息,这些信息将在InstallScriptInfos脚本发布时包含在文件夹中。

New-ScriptFileInfo命令有一个名为的string参数PrivateData,我希望它创建一个类似于PSD1文件中存在的部分(为简洁起见):

但是,在创建新脚本文件时,设置此参数:

结果是一个字符串:

如果此脚本发布到存储库:

结果InstallScriptInfos\foo_InstalledScriptInfo不包含这段元数据:

这个参数的目的是什么?

0 投票
1 回答
738 浏览

powershell - 写入信息似乎在 powershell foreach-object -parallel 中不起作用

我是powershell的新手,刚刚学习它。我在 C# 方面有一些经验。我正在尝试使用 foreach-object -Parallel 选项,但无法让所有 Write-* 函数工作。

函数调用如下:writeTest -verbose

输出:

我的问题是为什么 write-verbose 和 write-information 不显示任何内容?

请原谅任何无知。

0 投票
0 回答
50 浏览

.net - PowerShell:如何可靠地发送电子邮件

根据 cmdlet帮助文件Send-MailMessage不再推荐用于发送电子邮件,尤其是发送到 SMTP 服务器。

文档导致的 .NET Platform Compatibility Note 说使用MailKit .NET 库。在检查该库的文档后,它发现它主要用于 C#。但是我想直接从 PowerShell 发送电子邮件。

是否有其他选项可以执行此任务?