Questions tagged «powershell»

PowerShell是Microsoft的跨平台命令行和脚本实用程序。将此标签仅用于有关编写和执行PowerShell脚本的问题。跨平台版本PowerShell Core(Windows,macOS和Linux)特定的编程问题应标记为[powershell-core]。有关系统管理的问题应在“超级用户或服务器故障”时提出。

4
在PowerShell中提示用户输入
我想提示用户一系列输入,包括密码和文件名。 我有一个使用的示例host.ui.prompt,这似乎很明智,但我无法理解返回值。 有没有在PowerShell中获得用户输入的更好方法?
209 powershell 

4
如何从字符串执行任意本机命令?
我可以在以下情况下表达我的需要:编写一个函数,该函数接受要作为本机命令运行的字符串。 这个想法不是太牵强:如果您正在与公司中其他地方的其他命令行实用程序交互,这些实用程序可以为您提供逐字运行命令。由于您不控制命令,因此需要接受任何有效命令作为input。这些是我一直无法轻松克服的主要问题: 该命令可能会执行位于路径中带有空格的程序: $command = '"C:\Program Files\TheProg\Runit.exe" Hello'; 该命令的参数中可能带有空格: $command = 'echo "hello world!"'; 该命令可能同时具有单刻度和双刻度: $command = "echo `"it`'s`""; 有什么干净的方法可以做到这一点吗?我只能设计出繁琐和丑陋的解决方法,但是对于脚本语言,我觉得这应该变得非常简单。

17
如何获取正在执行的cmdlet的当前目录
这应该是一个简单的任务,但是我已经看过几次尝试如何成功获取到执行的cmdlet所在目录的路径。例如,当我执行时C:\temp\myscripts\mycmdlet.ps1有一个设置文件时,C:\temp\myscripts\settings.xml我希望能够存储C:\temp\myscripts在中的变量中mycmdlet.ps1。 这是一种可行的解决方案(尽管有点麻烦): $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.MyCommand.Path $settingspath = $directorypath + '\settings.xml' 另一个人建议此解决方案仅在我们的测试环境中有效: $settingspath = '.\settings.xml' 我非常喜欢后一种方法,而不是每次都必须将文件路径解析为参数,但我无法使其在我的开发环境中正常工作。我该怎么办?它与PowerShell的配置有关吗?
202 powershell  cmdlet 



8
如何从批处理文件运行PowerShell脚本
我正在尝试在PowerShell中运行此脚本。我将以下脚本另存为ps.ps1我的桌面。 $query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2" Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"} 我已经制作了一个批处理脚本来运行此PowerShell脚本 @echo off Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1 pause 但我收到此错误:


10
PowerShell中的函数返回值
我已经开发了一个PowerShell函数,该函数执行许多有关配置SharePoint Team网站的操作。最终,我希望函数以String的形式返回预配置站点的URL,因此在函数末尾,我具有以下代码: $rs = $url.ToString(); return $rs; 调用此函数的代码如下: $returnURL = MyFunction -param 1 ... 所以我期待一个String,但是不是。而是,它是System.Management.Automation.PSMethod类型的对象。为什么返回该类型而不是String类型?
188 powershell 



11
我可以让&&在Powershell中工作吗?
&&众所周知,要在Google上搜索是很难的,但是我发现的最好的是这篇文章说要使用-and。 不幸的是,它没有提供更多信息,而且我也找不到我应该做的事情-and(同样,这是一个非常困难的搜索工作) 我要在其中使用的上下文是“执行cmd1,如果成功,则执行cmd2”,基本上是这样的: csc /t:exe /out:a.exe SomeFile.cs && a.exe 对于认识的人来说,这应该是几个简单的代表点,谢谢! 编辑:如果您只想在一行上运行多个命令,而又不在乎第一个命令是否失败,则可以使用;出于我的大多数目的,这很好 例如:kill -n myapp; ./myapp.exe。
183 syntax  powershell 



3
Array.Add与+ =
我在PowerShell数组中发现了一些有趣的行为,即,如果我将数组声明为: $array = @() 然后尝试使用$array.Add("item")方法向其中添加项目,我收到以下错误: 异常调用带有“ 1”参数的“添加”:“集合的大小固定。” 但是,如果我使用附加项目$array += "item",则该项目将毫无问题地被接受,并且“固定大小”限制似乎并不适用。 为什么是这样?
178 arrays  powershell 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.