标签: powershell

Powershell TrimEnd修剪尾随e

我的任务是将从PDF导出的XML文件转换为另一个程序可用的XML文件.我正在使用Powershell.我注意到当我修剪线的末尾时,如果有尾随e,则e也被移除.而且它不只是一个e.如果有多个e,它们都会被修剪掉.例如:

$lines[i].TrimStart(">").TrimEnd("</field")
Run Code Online (Sandbox Code Playgroud)

如果给出的行是:

>123 Sycamore</field
Run Code Online (Sandbox Code Playgroud)

结果是:

123 Sycamor
Run Code Online (Sandbox Code Playgroud)

如果给出的行是:

>Agee</field
Run Code Online (Sandbox Code Playgroud)

结果是:

Ag
Run Code Online (Sandbox Code Playgroud)

有趣的是,这只发生在小写e上.所以,如果该行是:

>LANE</field
Run Code Online (Sandbox Code Playgroud)

结果是:

LANE
Run Code Online (Sandbox Code Playgroud)

我无法在technet或文档中找到任何内容.(也许我正在寻找错误的东西.)

任何人对此都有任何想法?我是否错误地实现了该功能?

powershell

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

运行作业时的参数解释

$h = "host1.example.com"
$code = {
  $(Get-WmiObject -Class "Win32_ComputerSystem" -Namespace "root\cimv2" -ComputerName $h)
}
$timeout = 5
$jobstate = $(Wait-Job -Job ($job = $(Start-Job -ScriptBlock $code)) -Timeout $timeout)
$wmicomobj = $(Receive-Job -Job $job)
Run Code Online (Sandbox Code Playgroud)

为什么上面的代码块会引发以下错误?

无法验证参数“ ComputerName”上的参数。参数为null或
空的。提供一个不为null或为空的参数,然后尝试命令
再次。
    + CategoryInfo:InvalidData:(:) [Get-WmiObject],ParameterBindingValidationException
    + FullyQualifiedErrorId:ParameterArgumentValidationError,Microsoft.PowerShell.Commands.GetWmiObjectCommand
    + PSComputerName:本地主机

在循环获取多个主机的WMI对象时,我想用它来实现超时。但是首先我需要通过作业执行来获得结果。

powershell

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

如何使用Powershell从PFX证书获取公钥?

我试图使用Powershell从证书中提取公钥.但是,每当我使用Powershell命令时Get-PfxCertificate,它只输出证书的指纹而不是公钥.如何让它输出公钥?

powershell certificate public-key pkcs12

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

无法以递归方式从Python项目中删除pyc文件

我无法以递归方式从我的Python项目中删除pyc文件.

这是项目:

    Directory: C:\Users\jk025523\projects\ex47


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       10/07/2016     01:52                bin
d-----       10/07/2016     01:52                docs
d-----       10/07/2016     01:52                ex47
d-----       10/07/2016     01:52                tests
-a----       09/07/2016     21:02            521 setup.py

测试目录中确实有一些pyc文件:

    Directory: C:\Users\jk025523\projects\ex47\tests


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       09/07/2016     21:28            180 ex47_tests.py
-a----       09/07/2016     21:28            721 NAME_tests.pyc
-a----       05/07/2016     10:52              0 __init__.py
-a----       05/07/2016     11:37            140 __init__.pyc

但是当我在PowerShell中输入此命令以删除所有pyc文件时:

find . -name "*.pyc" -exec rm -rf {}
Run Code Online (Sandbox Code Playgroud)

PowerShell输出此错误:

FIND:参数格式不正确

有谁知道如何从这个Python项目中删除所有pyc文件?

powershell recursion pyc

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

如何使用Powershell脚本将csv转换为小写

我编写了以下代码将csv转换为小写.

(Get-Content "$file" -Raw).ToLower() | Out-File "$outfile"
Run Code Online (Sandbox Code Playgroud)

但得到错误就像:

Get-Content : A parameter cannot be found that matches parameter name 'Raw'.
Run Code Online (Sandbox Code Playgroud)

这是我的错误屏幕截图.

powershell lowercase

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

借助PowerShell词典更新web.config中的应用程序设置

我正在尝试使用PowerShell更改web.config文件中的应用程序设置

以下是web.config文件;

<configuration>
    <connectionStrings>
        <add name="TestDBEntities" connectionString="metadata=res://*/TestProject.csdl|res://*/TestProject.ssdl|res://*/TestProject.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SQL01;initial catalog=TestDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>
    <appSettings>
        <add key="ActivePeriod" value="false" />
        <add key="Environment" value="UAT" />
        <add key="authmode" value="4" />
        <add key="IsEncryptedConfig" value="true" />
        <add key="LogErrorsToText" value="true" />
    </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我想更改应用程序设置值。为此,我将所有相应的值存储在PowerShell字典中。这是我的字典。

Key                     Value
-----                   -----
ActivePeriod            true
Environment             prod
LogErrorsToText         false
Run Code Online (Sandbox Code Playgroud)

现在,我想将每个Dictionary键与appsetting键进行匹配。如果任何字典键与appsetting键匹配,则应替换相应的值。就我而言,我期望以下输出;

<configuration>
    <connectionStrings>
        <add name="TestDBEntities" connectionString="metadata=res://*/TestProject.csdl|res://*/TestProject.ssdl|res://*/TestProject.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SQL01;initial catalog=TestDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>
    <appSettings>
        <add key="ActivePeriod" value="true" />
        <add key="Environment" value="prod" />
        <add key="authmode" value="4" />
        <add key="IsEncryptedConfig" value="true" /> …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0

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

使用Powershell关闭Excel应用程序

我正在从Powershell启动工作簿中的宏(以使过程自动化)。Powershell中的以下内容将打开excel工作簿并运行宏而不可视化该过程。

问题是,即使我没有看到宏在运行,从宏生成的excel新实例仍处于打开状态。

# start Excel
$excel = New-Object -comobject Excel.Application

#open file
$FilePath = 'C:\file\Book1.xlsm'
$workbook = $excel.Workbooks.Open($FilePath)


#access the Application object and run a macro
$app = $excel.Application
$app.Run("macro")


#close excel
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Start-Sleep 1
'Excel processes: {0}' -f @(Get-Process excel -ea 0).Count
Remove-Variable $excel

exit $LASTEXITCODE
Run Code Online (Sandbox Code Playgroud)

excel文件仍作为任务管理器中的一个进程出现,并占用了内存空间。

我如何让Powershell完全关闭通过宏打开的excel应用程序的实例?

在此处输入图片说明

任何帮助,不胜感激!

excel powershell vba excel-vba

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

使用AWS Powershell部署到AWS Elastic Beanstalk

嗨,我正尝试使用AWS Powershell部署到Elastic Beanstalk上。

当前,我只是在尝试使用以下cmdlet获取EB环境:+ Get-EBEnvironment -ApplicationName -EnvironmentId -VersionLabel -EnvironmentName -IncludedDeletedBackTo -IncludeDeleted

这是我使用的cmdlet:Get-EBEnvironment -ApplicationName appName

但是,我收到以下错误:

Get-EBEnvironment:未指定区域,也未从持久性/ shell默认值获得区域。在C:\ Users \ lowong \ Desktop \ script.ps1:22 char:1

  • Get-EBEnvironment -ApplicationName evcfacade
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    • CategoryInfo:InvalidOperation:(Amazon.PowerShe ... vironmentCmdlet:GetEBEnvironmentCmdlet)[Get-EBEnvironment],InvalidOperationException
    • FullyQualifiedErrorId:InvalidOperationException,Amazon.PowerShell.Cmdlets.EB.GetEBEnvironmentCmdlet

我是否缺少其他必须放在cmdlet中的字段?还是什么问题?

(以下是cmdlet文档的链接:http : //docs.aws.amazon.com/powershell/latest/reference/index.html? page= New-EBApplicationVersion.html& tocid= New-EBApplicationVersion

powershell amazon-s3 amazon-web-services

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

在文本文件中提取数字

我有一个来自excel的文本文件.我不知道如何在特定角色后取五位数.

我想#ACA在文本文件中只取五位数.

我的文字是这样的:

ERROR_MESSAGE
(((#ACA16018)|(#ACA16019))&(#AQV71767='')&(#AQV71765='2'))?1:((#AQV71765='4')?1:((#AQV71767$'')?(((#AQV71765='1')|(#AQV71765='3'))?1:'Hasar veya Lehe Hukuk seçebilirsiniz'):'Rücu s?ra numaras?n? yaz?p Hasar veya Lehe Hukuk seçebilirsiniz'))
Rücu Oran? Girilmesi Zorunludur...'
#ACA17660
#ACA16560
#ACA15623
#ACA17804
BU ALANI BO? GEÇEMEZS?N?Z.EKSPER RAPORU GELMEDEN  DY YE GER? GÖNDEREMEZS?N?Z. PERT ?HBARI VARSA PERT ÇALINMA OPERASYONU AKT?V?TES? OLU?TURULMALIDIR.
(#TSC[T008UNSMAS;FIRM_CODE=2 AND UNIT_TYPE='SG' AND UNIT_NO=#AQV71830]>0)?1:'Girdi?iniz de?er fihristte yoktur'
#ACA17602
#ACA17604
#ACA56169
BU ALANI BO? GEÇEMEZS?N?Z
#ACA17606
#ACA17608
(#AQV71835='')?'Bo? geçilemez':1
Lütfen Gönderilecek Ki?inin Mail Adresini Giriniz ! '
LÜTFEN RED NEDEN?N? G?R?N?Z.
EKS?K B?LG? / BELGE …
Run Code Online (Sandbox Code Playgroud)

python bash powershell text extract

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

(powershell)Select-String vs Findstr

这很简单......为什么第一个命令工作而第二个没有?

Findstr看起来最好用在"dos"之类的命令而不是powershell.

Get-AppXProvisionedPackage -online | findstr ^DisplayName

Get-AppXProvisionedPackage -online | Select-String -pattern "DisplayName"
Run Code Online (Sandbox Code Playgroud)

powershell新手:)

powershell findstr select-string

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