我正在用C#构建一个PowerShell主机,我想在调用PowerShell之后显示结果。现在我使用以下方法:
public static string GetLogQueriedString(
PSMemberInfoCollection<PSPropertyInfo> PSPropertyCollection)
{
string line = string.Empty;
foreach (var item in PSPropertyCollection)
{
if (!line.Equals(string.Empty)) line
描述
无法删除OneDrive目录中的非空文件夹
再生产步骤
在OneDrive目录中启动PowerShell
PS C:\Users\MyUserName\OneDrive>
尝试使用删除项cmdlet删除该目录中的非空文件夹,例如:.\test\文件夹。
PS C:\Users\MyUserName\OneDrive> Remove-Item .\test\
预期结果
如果没有-Recurse参数,PowerShell应该返回确认消息,例如
Confirm
The item at C:\Users\MyUserName\OneDrive\test\ has children a
我只是想要一个.ps1文件,它将运行一行简单的powershell,但不会立即关闭。
我试过做"read-host -prompt“,但是它在代码运行之前显示,然后仍然立即关闭。
get-appxpackage -allusers | select name
read-host -prompt "Press enter to exit"
我希望结果是运行文件,然后有机会在powershell窗口中读取输出,然后按下要退出的内容。但实际输出是在代码运行之前提示退出的,然后在输出中运行并关闭。
背景:
现在我有了一种跨会话保存历史的方法,所以PowerShell历史对我来说要有用得多。
# Run this every time right before you exit PowerShell
get-history -Count $MaximumHistoryCount | export-clixml $IniFileCmdHistory;
现在,我正在尝试阻止PowerShell将重复的命令保存到我的历史记录中。
我尝试使用Get-Unique,但这不起作用,因为历史记录中的每个命令都是“唯一的”,因为每个命令都有不同的ID号。
下面是一个简单的C# PowerShell主机程序,它只运行Get-ChildItem并在控制台上显示结果:
using System.Management.Automation;
using static System.Console;
namespace PsHostGetChildItem
{
class Program
{
static void Main(string[] args)
{
var result = PowerShell.Create().AddCommand("Get-ChildIte
我正在尝试编写一些powershell脚本来管理对api的调用,如果我将结果存储在一个变量中,我可以很好地迭代它们,但是我想了解如何通过管道来实现它。
这行得通
#This uri returns an array of objects that describe searches via the api
$reports = Invoke-RestMethod -uri $(root)/search -Method get -UseDefaultCredentials
foreach($r in $reports){
#can do stuff here
}
如果我这样做,就会得到控
我正在学习powershell,我需要有人给我一个初步的推动,让我通过学习曲线。我熟悉编程和dos,但不熟悉powershell。
我想做的是列出指定目录中的所有文件,并将文件名推入数组中。我对语法不太熟悉,当我试图运行测试时,有人问我如何输入参数。
有人能指点我,告诉我怎样才能得到我想要的东西吗?
这就是powershell问我的:
PS D:\ABC> Test.ps1
cmdlet ForEach-Object at command pipeline position 2
Supply values for the following parameters:
Process[0]: