假设您有一个返回某些内容的方法或cmdlet,但您不想使用它而您不想输出它.我找到了这两种方式:
Add-Item > $null
[void]Add-Item
Add-Item | Out-Null
Run Code Online (Sandbox Code Playgroud)
你用什么?哪种更好/更清洁?为什么?
我希望在Powershell ISE内的第二个myScript2.ps1脚本中调用myScript1.ps1脚本.
MyScript2.ps1中的以下代码在Powershell Administration中运行良好,但在PowerShell ISE中不起作用:
#Call myScript1 from myScript2
invoke-expression -Command .\myScript1.ps1
Run Code Online (Sandbox Code Playgroud)
从PowerShell ISE执行MyScript2.ps1时出现以下错误:
术语".\ myScript1.ps1"未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.
我有一个名为的批处理文件test.bat.我在test.bat文件中调用以下说明:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Run Code Online (Sandbox Code Playgroud)
当我通过命令提示符运行时,我的testscript运行成功.我想以管理员身份运行它(就像我创建了一个桌面快捷方式并以管理员身份运行.它不应该提示任何用户名或密码).
我在上面尝试过添加/elevate和/NOUAC参数test.bat,但没有运气.我该如何解决这个问题?
我知道如何手动执行,但我希望从命令提示符执行此操作.
(作者Marnix Klooster):...不使用任何其他工具,例如在回答超级用户问题时建议的那些工具如何从具有提升权限的命令行运行程序.)
如果我有一个运行PowerShell ISE的实例,我安装了修改PATH的东西,或者我在PowerShell之外以任何方式修改它,那么我需要重新启动PowerShell才能看到更新的PATH变量.
有没有办法从PowerShell中重新加载路径而不重新启动它?
我正在向我的团队分发Powershell脚本.该脚本是从Vsphere客户端获取IP地址,进行mstsc连接并将其记录在共享文件中.
他们使用脚本的那一刻他们就知道了机器的IP地址.之后,他们总是倾向于直接使用mstsc而不是运行powershell脚本.(因为他们正在使用mstsc,我无法知道他们是否经常使用VM)
主要是他们告诉我运行PowerShell并不是直截了当的.
我因他们的懒惰而生病.
有没有办法通过双击.ps1文件使PowerShell脚本工作?
我运行此代码以从ASP.NET应用程序执行PowerShell代码:
System.Management.Automation.Runspaces.Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
runspace.Open();
System.Management.Automation.Runspaces.Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(@"\\servername\path");
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
无法加载.ps1,因为在此系统上禁用了脚本的执行.有关详细信息,请参阅"get-help about_signing".
从命令提示符或Windows(Windows窗体)应用程序运行相同的代码.
请考虑以下代码段:
"12-18" -Contains "-"
Run Code Online (Sandbox Code Playgroud)
你认为这会评估true,但事实并非如此.这将评估false相反.我不确定为什么会这样,但确实如此.
为避免这种情况,您可以使用此代码:
"12-18".Contains("-")
Run Code Online (Sandbox Code Playgroud)
现在表达式将评估为true.
为什么第一个代码片段的行为如此?有什么特别的东西-不能很好地搭配-Contains吗?该文档没有提及任何相关内容.
我现在已经使用Beta 2了一段时间,这让我疯狂,我必须在运行VS2010命令提示符时向cmd.exe发挥作用.我曾经为Visual Studio 2008提供了一个很好的vsvars2008.ps1脚本.任何人都有vsvars2010.ps1或类似的东西吗?