我用以下内容替换了一些内容:
Write-Verbose "Doing somthing..."
Run Code Online (Sandbox Code Playgroud)
我通过PS ISE运行我的脚本,如:
.\FooScript.ps1 -verbose
Run Code Online (Sandbox Code Playgroud)
但是在输出窗口中我没有看到任何这些消息.
如何显示write-Verbose消息?
我试图在PowerShell ISE中使用.NET 4.0程序集,并尝试更改通过以下方式使用的配置文件:
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $PathToConfig);
Run Code Online (Sandbox Code Playgroud)
[Configuration.ConfigurationManager] :: ConnectionStrings.Count总是返回"1",
"[Configuration.ConfigurationManager] :: ConnectionStrings [0] .Name"总是返回"LocalSqlServer",而ConnectionString名称不在我的".config"中文件.
请注意,从PowerShell命令提示符执行PowerShell脚本将按预期运行.就在我从PowerShell ISE中执行它时,它无法按预期工作.
如何使PowerShell ISE与PowerShell 6.0一起使用。当前,它具有4.0。
此服务器已安装PowerShell 4.0,并且我通过以下链接通过PowerShell-6.1.0-win-x64.msi安装了PowerShell 6.0:https : //github.com/PowerShell/PowerShell/releases 文件现在位于C:\ Program Files中\ PowerShell \ 6。
但是,ISE仍然显示4.0,但是我需要它运行6.0
$ PSVersionTable.psversion
重大次要建筑修订
4 0 -1 -1
嗨,我正在努力与以下 - 我假设我有以下目录结构C:\ Temp\Test1和C:\ Temp\Test2
我想要做的是递归地将C:\ Temp\Test1的子内容复制到C:\ Temp\Test2而不复制实际的文件夹C:\ Temp\Test1 ..right现在如果我使用命令
Copy-Item C:\Temp\Test1 C:\Temp\Test2 -Recurse
Run Code Online (Sandbox Code Playgroud)
将导致C:\ Temp\Test2\Test1并没有参数组合似乎可以缓解这个问题
同样,当我希望删除C:\ Temp\Test2中的所有子内容时,我希望只删除子内容而不是实际文件夹,例如
Remove-Item C:\Temp\Test2\ -Recurse
Run Code Online (Sandbox Code Playgroud)
正在删除\ Test2文件夹.我尝试了很多参数变化 - 我怎样才能完成我想做的事情?
我正在使用Windows PowerShell ISE编写PowerShell脚本.当我更改脚本中的某些内容并运行脚本时,不会执行最后保存的脚本版本,而是执行旧版本.只有当我第二次运行脚本时,它才会使用当前版本.如何始终运行最新版本的脚本?
我对这个问题有点困惑!我正在构建一个更大的脚本,它在ISE中工作但不在PowerShell控制台中工作.我已设法将其跟踪到[System.Uri] :: EscapeDataString函数,它似乎在不同的环境之间表现不同,例如在我的powershell console()'&!没有被转义,在IDE中,它们都被转义.
我错过了什么吗?
我的测试代码:
[System.Uri]::EscapeDataString("/?:@%!$&'/*+,;=()")
Run Code Online (Sandbox Code Playgroud)
ISE输出:
%2F%3F%3A%40%25%21%24%26%27%2F%2A%2B%2C%3B%3D%28%29
Run Code Online (Sandbox Code Playgroud)
Powershell控制台输出:
%2F%3F%3A%40%25!%24%26'%2F*%2B%2C%3B%3D()
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试在PowerShell ISE中自动创建一组标签
我开始使用诸如此类的功能
function Start-NewTab($name, [ScriptBlock]$scriptBlock)
{
$tab = $psISE.PowerShellTabs.Add()
$tab.DisplayName = $name
sleep 2
$tab.Invoke($scriptBlock)
}
Run Code Online (Sandbox Code Playgroud)
但是,当我像这样运行它
$v = "hello world"
Start-NewTab "Test" { $v }
Run Code Online (Sandbox Code Playgroud)
hello world 没有显示,不像以下的fragement
function Test-ScriptBlock([ScriptBlock]$sb) { & $sb }
Test-ScriptBlock { $v }
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,我该如何解决?
我有一个属性名称和值的二维数组,我需要添加到PowerShell对象.
使用New-Object和Add-Member创建和显示这样的对象没有任何问题:
$obj = New-Object PSObject
$obj | Add-Member NoteProperty IName($fiel.IName)
$obj | Add-Member NoteProperty SName($fiel.SName)
$obj | Add-Member NoteProperty Taggy($fiel.Taggy)
$obj | Add-Member NoteProperty Title($fiel.Title)
Write-Output $obj
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样的事情时:
for ($k=0; $k -lt $fieldsArray.Count; $k++)
{
$itemobj | Add-Member –MemberType NoteProperty –Name $fieldsArray[$k].InternalName –Value $itemki[$j][$fieldsArray[$k].InternalName]
#Write-Host $k
#Write-Host $fieldsArray[$k].InternalName.ToString()
#Write-Host $itemki[$j][$fieldsArray[$k].InternalName]
}
Write-Output $itemobj
Run Code Online (Sandbox Code Playgroud)
Write-Output $ itemobj将只返回一个应该添加的属性成员而没有任何整齐的列名.
添加了注释掉的部分用于测试目的并返回所有项目的正确值.
我也试过了
$itemobj | Add-Member NoteProperty $fieldsArray[$k].InternalName.ToString()($fieldsArray[$k].InternalName)
Run Code Online (Sandbox Code Playgroud)
没有任何改进.
为什么没有添加其他房产成员?
我有我需要的数据.如果我写:
for ($k=0; $k -lt $fieldsArray.Count; $k++)
{
Write-Host $k …Run Code Online (Sandbox Code Playgroud) 我的环境中的最大行数是 47。
我可以通过编程来测量这个值吗?
powershell-ise ×10
powershell ×9
.net ×1
.net-4.0 ×1
escaping ×1
object ×1
properties ×1
verbose ×1
version ×1
windows-8 ×1