标签: powershell-ise

为什么以及何时使用32位或64位PowerShell或ISE?

我刚买了第一台64位Windows笔记本电脑.现在我正在寻找有关何时以及为何使用32位或64位版本的PowerShell或ISE的信息.

我的第一印象是我最好留32位,直到我理解得更好.

我想念或未找到的是基本教程和实践经验以及这些问题的链接.

powershell powershell-ise powershell-2.0

5
推荐指数
1
解决办法
5045
查看次数

目录/文本搜索上的DISTINCT Select-String输出

我很好奇如何根据这个例子生成一个不同的文件列表.

**此示例生成包含文本"folders"但在同一行上没有文本".invoke"的所有.ps1和.psm1文件的列表.

$text='folders'
dir C:\Workspace\mydirectorytosearch1\ -recurse -filter '*.ps*1' | Get-ChildItem | select-string -pattern $text | where {$_ -NotLike '*.invoke(*'}
dir C:\Workspace\mydirectorytosearch2\ -recurse -filter '*.ps*1' | Get-ChildItem | select-string -pattern $text | where {$_ -NotLike '*.invoke(*'}
Run Code Online (Sandbox Code Playgroud)

这很酷,效果很好,但我得到重复的文件输出(相同的文件,但不同的行号).

如何保持文件输出清晰?

目前的不良输出:

  • C:\工作区\ mydirectorytosearch1 \匿名化-psake.ps1:4 :. "$($ folders.example.test)\ anonymize\Example.vars.ps1"C:\ Workspace\mydirectorytosearch1\anonymize-psake.ps1:5:."$($ folders.missles)\提取物\集结utilities.ps1"

所需的输出:

  • C:\工作区\ mydirectorytosearch1 \匿名-psake.ps1

帮我调整我的脚本?

powershell scripting powershell-ise powershell-2.0 powershell-3.0

5
推荐指数
1
解决办法
2935
查看次数

如何搜索文本文件中的第一行和最后一行?

我只需要在文本文件中搜索第一行和最后一行来查找" - "并将其删除.我该怎么做?我尝试了select-string,但我不知道找到第1行和最后一行,只从那里删除" - ".

这是文本文件的样子:

 % 01-A247M15 G70 
N0001 G30 G17 X-100 Y-100 Z0
N0002 G31 G90 X100 Y100 Z45
N0003 ; --PART NO.:  NC-HON.PHX01.COVER-SHOE.DET-1000.050 
N0004 ; --TOOL:  8.55 X .3937 
N0005 ;  
N0006  % 01-A247M15 G70 
Run Code Online (Sandbox Code Playgroud)

像这样的东西?

$1 = Get-Content C:\work\test\01.I

$1 | select-object -index 0, ($1.count-1)
Run Code Online (Sandbox Code Playgroud)

powershell powershell-ise

5
推荐指数
2
解决办法
2万
查看次数

Powershell ISE在发布时崩溃

不知道为什么,但今天我的工作站拒绝加载Powershell ISE.我可以加载Powershell,我的cmdlet工作正常.我已经尝试加载32位和64位ISE,并且出于同样的原因都崩溃了.

这是crashdump:

问题签名:问题事件名称:PowerShell NameOfExe:PowerShell_ISE.exe FileVersionOfSystemManagementAutomation:6.1.7600.16385 InnermostExceptionType:System.Xml.XmlException
OutermostExceptionType:System.Reflection.TargetInvocation DeepestPowerShellFrame:indows.PowerShell.GuiExe.Internal.GPowerShell.Main DeepestFrame:indows.PowerShell .GuiExe.Internal.GPowerShell.Main ThreadName:未知操作系统版本:6.1.7600.2.0.0.256.48区域设置ID:1033

在线阅读我们的隐私声明:http:
//go.microsoft.com/fwlink/?linkid = 104288&clcid = 0x400

如果没有在线隐私声明,请离线阅读我们的隐私声明:C:\ Windows\system32\en-US\erofflps.txt

在这次崩溃中我在谷歌上找不到任何东西所以我希望有人在这里有一些指导.

crash powershell powershell-ise windows-7

5
推荐指数
1
解决办法
1万
查看次数

PowerShell - 从特定文件夹复制特定文件

所以,文件夹结构如下所示:

  1. SourceFolder
    • FILE1.TXT
    • 对File1.doc
      1. Subfolder1
        • FILE2.TXT
        • file2.doc
          1. SubSubFolder
            • file3.txt
            • doc3.txt

我想要做的是将文件夹中的所有.txt文件(其(文件夹)名称包含eng)复制到目标文件夹.只是文件夹中的所有文件 - 而不是文件结构.

我用的是这个:

$dest = "C:\Users\username\Desktop\Final"
$source = "C:\Users\username\Desktop\Test1"
Copy-Item $source\eng*\*.txt $dest -Recurse
Run Code Online (Sandbox Code Playgroud)

问题是它只从每个父文件夹而不是子文件夹复制.txt文件.

如何在此脚本中包含所有子文件夹并保留eng名称检查?你能帮我么?

我在谈论PowerShell命令.我应该使用robocopy吗?

powershell powershell-ise

5
推荐指数
1
解决办法
2万
查看次数

如何在PowerShell ISE中更改#region标记的颜色

我喜欢改变PowerShell ISE的默认颜色方案,特别是使脚本窗格"反转",即在深色背景上的浅色文本.评论的颜色为PaleGreen:

[PS]> ($psise.Options.TokenColors) | ?{$_.Key -eq "Comment"} | FT -AutoSize

    Key Value    
    --- -----    
Comment #FF98FB98
Run Code Online (Sandbox Code Playgroud)

我也喜欢使用#region ... #endregion注释来允许我折叠代码块.

当它们没有折叠时,#region#endregion评论显示为绿色,就像任何其他评论一样,但是一旦我将它们折叠它们就变成黑色,使它们在黑暗的背景上几乎看不见.其他部分(功能等)在折叠时不会出现颜色.

有谁知道是否可以设置折叠 #region#endregion评论的颜色?

customization powershell-ise

5
推荐指数
1
解决办法
480
查看次数

在进行代码更改后,PowerShell ISE有时会出现不可预测的行为

我正在使用PowerShell ISE(PS版本5.0).如果我运行此代码:

Write-Host "This"
Run Code Online (Sandbox Code Playgroud)

它输出:

This
Run Code Online (Sandbox Code Playgroud)

如果我像这样修改脚本:

Write-Host "That"
Run Code Online (Sandbox Code Playgroud)

它输出:

That
Run Code Online (Sandbox Code Playgroud)

大.正如所料.现在,如果我有这个代码:

$Form = New-Object System.Windows.Forms.Form
$Timer = New-Object System.Windows.Forms.Timer

$Timer.Add_Tick(
{
    &{
    Write-Output "Here"
    $Form.Close()} | Write-Host 
})

$Timer.Interval = 3000
$Timer.start()
$result = $Form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)

它输出:

Here
Run Code Online (Sandbox Code Playgroud)

如果我改变什么在脚本,例如"Here""There"$Timer.Interval = 3000$Timer.Interval = 4000并运行它,它会做两件意想不到的事情:1),而不是显示为适当的时间期限的形式,它短暂闪烁在屏幕上,和2)它输出原始Here而不是There.如果我关闭ISE并重新打开它,脚本将按预期运行.

到底是怎么回事?

powershell powershell-ise powershell-5.0

5
推荐指数
1
解决办法
283
查看次数

如何在PowerShell ISE中更改Read-Host提示符的WindowTitle?

我知道如何使用类似的方式更改主ISE窗口的标题

$Host.UI.RawUI.WindowTitle = "My Awesome New Window Title"
Run Code Online (Sandbox Code Playgroud)

但我想知道如何访问弹出读取主机请求的窗口标题,如:

$strP4Pass = Read-Host "Please enter Perforce Password" -assecurestring
Run Code Online (Sandbox Code Playgroud)

它以Windows PowerShell ISE - Input标题的形式出现 - 是的,我知道我窗口中有Please enter Perforce Password提示- 但我真的希望能够自定义标题 - 任何想法?

powershell powershell-ise

4
推荐指数
1
解决办法
2175
查看次数

如何忽略警告错误?

我有以下 PowerShell 脚本。它选取给定 IP 地址内计算机的 NetBIOS 名称。我正在使用管道将结果转储到文本文件中。问题在于,如果 IP 地址不可用,则会打印警告。

这是 PowerShell 脚本:

function Get-ComputerNameByIP {
param( $IPAddress = $null )
BEGIN {
    $prefBackup = $WarningPreference
    $WarningPreference = 'SilentlyContinue'
}
PROCESS {
    if ($IPAddress -and $_) {
        throw ‘Please use either pipeline or input parameter’
        break
    } elseif ($IPAddress) {
        ([System.Net.Dns]::GetHostbyAddress($IPAddress))
    } 
    } else {
        $IPAddress = Read-Host “Please supply the IP Address”
        [System.Net.Dns]::GetHostbyAddress($IPAddress)
    }
}
END {
    $WarningPreference = $prefBackup
}
Run Code Online (Sandbox Code Playgroud)

这是我希望忽略的错误消息:

警告:请求的名称有效,但未找到请求类型的数据

powershell suppress-warnings powershell-ise

4
推荐指数
3
解决办法
3万
查看次数

运行脚本时的安全警告 - Unblock-File not unblocking file

在我的计算机上运行任何脚本时,我突然开始收到此警告:

仅运行您信任的脚本。虽然来自 Internet 的脚本可能很有用,但此脚本可能会损害您的计算机...

截屏:

Powershell 安全警告

文件没有被阻止。

我有

  • 在文件资源管理器> 属性中检查。
  • 也使用Unblock-Filecmdlet 解除阻止。
  • 使用 cmdlet 检查流:Get-Content -Path '\\Path\Script.ps1' -Stream Zone.Identifier。未找到流。
  • 二手Streams.exe Sysinternals公司:streams.exe -d \\Path\Script.ps1。未找到包含流的文件。

还尝试使用 Powershell 删除流:

Remove-Item -Path \\Path\Script.ps1 -Stream Zone.Identifier
Run Code Online (Sandbox Code Playgroud)

当然没有成功,因为没有流。

执行政策不受限制。

当我运行 Set-ExecutionPolicy Bypass 时,它可以在没有警告的情况下工作。但是,它也应该在不受限制的情况下工作。

老实说,我不知道发生了什么。

security powershell powershell-ise

4
推荐指数
1
解决办法
1万
查看次数