我的任务是将从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或文档中找到任何内容.(也许我正在寻找错误的东西.)
任何人对此都有任何想法?我是否错误地实现了该功能?
$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从证书中提取公钥.但是,每当我使用Powershell命令时Get-PfxCertificate,它只输出证书的指纹而不是公钥.如何让它输出公钥?
我无法以递归方式从我的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文件?
我编写了以下代码将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更改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="data source=SQL01;initial catalog=TestDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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="data source=SQL01;initial catalog=TestDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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中的以下内容将打开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应用程序的实例?
任何帮助,不胜感激!
嗨,我正尝试使用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
我是否缺少其他必须放在cmdlet中的字段?还是什么问题?
(以下是cmdlet文档的链接:http : //docs.aws.amazon.com/powershell/latest/reference/index.html? page= New-EBApplicationVersion.html& tocid= New-EBApplicationVersion)
我有一个来自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) 这很简单......为什么第一个命令工作而第二个没有?
Findstr看起来最好用在"dos"之类的命令而不是powershell.
Get-AppXProvisionedPackage -online | findstr ^DisplayName
Get-AppXProvisionedPackage -online | Select-String -pattern "DisplayName"
Run Code Online (Sandbox Code Playgroud)
powershell新手:)