Questions tagged «powershell»

PowerShell是Microsoft的跨平台命令行和脚本实用程序。将此标签仅用于有关编写和执行PowerShell脚本的问题。跨平台版本PowerShell Core(Windows,macOS和Linux)特定的编程问题应标记为[powershell-core]。有关系统管理的问题应在“超级用户或服务器故障”时提出。

5
如何在PowerShell中换行?
我是PowerShell的新手,并且在循环中连接字符串,如果发生特殊情况,我应该插入换行符...我该怎么做? 基本上寻找的等价物\n。 $str = "" foreach($line in $file){ if($line -Match $review){ #Special condition $str += ANSWER #looking for ANSWER } #code..... } 到目前为止,我已经尝试过 "\n" '\n' "\N" '\N' "\r" '\r' "\R" '\R' '`n' '`r' '-n' '-r'

9
是否等效于Powershell中C#的“ using”关键字?
当我在C#的.net-Framework中使用另一个对象时,可以使用using指令节省很多键入内容。 using FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It; ... var blurb = new Thingamabob(); ... 那么在Powershell中有没有办法做类似的事情?我正在访问许多.net对象,但不满意输入 $blurb = new-object FooCompany.Bar.Qux.Assembly.With.Ridiculous.Long.Namespace.I.Really.Mean.It.Thingamabob; 每时每刻。



4
如何在PowerShell复制脚本中正确过滤多个字符串
我正在使用此答案中的PowerShell脚本进行文件复制。当我想使用过滤器包括多种文件类型时,就会出现问题。 Get-ChildItem $originalPath -filter "*.htm" | ` foreach{ $targetFile = $htmPath + $_.FullName.SubString($originalPath.Length); ` New-Item -ItemType File -Path $targetFile -Force; ` Copy-Item $_.FullName -destination $targetFile } 像梦一样工作。但是,当我想使用过滤器包含多种文件类型时,就会出现问题。 Get-ChildItem $originalPath ` -filter "*.gif","*.jpg","*.xls*","*.doc*","*.pdf*","*.wav*",".ppt*") | ` foreach{ $targetFile = $htmPath + $_.FullName.SubString($originalPath.Length); ` New-Item -ItemType File -Path $targetFile -Force; ` Copy-Item $_.FullName …

5
PowerShell-启动过程和Cmdline开关
我可以运行得很好: $msbuild = "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" start-process $msbuild -wait 但是,当我运行下面的代码时,出现错误: $msbuild = "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /v:q /nologo" start-process $msbuild -wait 有没有一种方法可以使用启动过程将参数传递给MSBuild?我愿意不使用启动过程,我使用它的唯一原因是我需要将“命令”作为变量。 当我自己 一行上有 C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe / v:q / nologo时,如何在Powershell中处理该问题? 我应该改用某种eval()函数吗?

3
PowerShell的推荐编码样式是什么?
有什么推荐的编码样式如何编写PowerShell脚本? 这与代码的结构无关(如果要使用模块,应使用多少个函数……)。这是关于“如何编写代码以使其可读”。 在编程语言中,有一些推荐的编码样式(要缩进什么,如何缩进-空格/制表符,在哪里换行,在哪里放括号等),但是我没有看到关于PowerShell的任何建议。 我特别感兴趣: 如何写参数 function New-XYZItem ( [string] $ItemName , [scriptblock] $definition ) { ... (我看到它更像是“ V1”语法) 要么 function New-PSClass { param([string] $ClassName ,[scriptblock] $definition )... 或(为什么要添加空属性?) function New-PSClass { param([Parameter()][string] $ClassName ,[Parameter()][scriptblock] $definition )... 或(我在Jaykul的代码中看到的其他格式) function New-PSClass { param( [Parameter()] [string] $ClassName , [Parameter()] [scriptblock] $definition )... 要么 …


5
在PowerShell中将输出重定向到$ null,但确保变量保持设置
我有一些代码: $foo = someFunction 这将输出一条警告消息,我要重定向到$ null: $foo = someFunction > $null 问题是,当我这样做时,尽管成功地阻止了警告消息,但它也具有不以函数结果填充$ foo的负面影响。 如何将警告重定向到$ null,但仍保持$ foo填充? 另外,如何将标准输出和标准错误都重定向为null?(在Linux中为2>&1。)
78 powershell 

4
如何使用Invoke-Command传递命名参数?
我有一个可以通过Invoke-Command远程运行的脚本 Invoke-Command -ComputerName (Get-Content C:\Scripts\Servers.txt) ` -FilePath C:\Scripts\ArchiveEventLogs\ver5\ArchiveEventLogs.ps1 只要我使用默认参数,它就可以正常工作。但是,该脚本具有2个命名的[switch]参数(-Debug和-Clear) 如何通过调用命令传递已切换的参数?我已经尝试过-ArgumentList,但是出现错误,因此我必须使用错误的语法或其他内容。任何帮助是极大的赞赏。

11
PowerShell数组初始化
在PowerShell中初始化数组的最佳方法是什么? 例如,代码 $array = @() for($i=0; $i -lt 5;$i++) { $array[$i] = $FALSE } 产生错误 Array assignment failed because index '0' was out of range. At H:\Software\PowerShell\TestArray.ps1:4 char:10 + $array[$ <<<< i] = $FALSE

5
从Powershell脚本运行BAT文件的最安全方法
我无法通过Powershell脚本直接执行bat文件。例如,这在命令行上有效: .\\my-app\my-fle.bat 当我将此命令添加到脚本时,它输出: The term '.\\my-app\my-file.bat' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 我也尝试了以下操作,结果相同: & .\\my-app\my-fle.bat & ".\\my-app\my-fle.bat" \my-app\my-fle.bat & \my-app\my-fle.bat …

6
PSCustomObject到Hashtable
将a转换PSCustomObject为a的最简单方法是Hashtable什么?它与splat运算符,大括号和看起来像键值对的显示一样。当我尝试将其投射到[Hashtable]它不起作用时。我也尝试过.toString(),分配的变量说它是一个字符串,但是什么也不显示-有什么想法吗?

4
如何编写中间带有参数的PowerShell别名?
我正在尝试设置Windows PowerShell别名以使用某些参数运行MinGW的g ++可执行文件。但是,这些参数必须位于文件名和其他参数之后。我不想麻烦地尝试设置一个函数以及所有这些。有没有一种方法可以简单地说: alias mybuild="g++ {args} -lib1 -lib2 ..." 或类似的规定?我对PowerShell并不是很熟悉,而且我很难找到解决方案。任何人?
76 powershell  g++  alias 

4
如何编写一个接受管道输入的PowerShell脚本?
我正在尝试编写可以获取管道输入的PowerShell脚本(并且有望这样做),但是尝试类似 ForEach-Object { # do something } 在命令行中使用脚本时,实际上无法正常工作,如下所示: 1..20 | .\test.ps1 有办法吗? 注意:我了解函数和过滤器。这不是我想要的。
75 powershell 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.