Questions tagged «powershell»

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





7
检查Windows PowerShell中是否存在文件?
我有这个脚本,可以比较磁盘两个区域中的文件,并在修改日期较旧的那个区域中复制最新文件。 $filestowatch=get-content C:\H\files-to-watch.txt $adminFiles=dir C:\H\admin\admin -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True} $userFiles=dir C:\H\user\user -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True} foreach($userfile in $userFiles) { $exactadminfile= $adminfiles | ? {$_.Name -eq $userfile.Name} |Select -First 1 $filetext1=[System.IO.File]::ReadAllText($exactadminfile.FullName) $filetext2=[System.IO.File]::ReadAllText($userfile.FullName) $equal = $filetext1 -ceq $filetext2 …

5
如何使用PowerShell替换文件中的多个字符串
我正在编写用于自定义配置文件的脚本。我想替换该文件中的多个字符串实例,并且尝试使用PowerShell来完成这项工作。 对于单个替换它可以很好地工作,但是进行多次替换非常慢,因为每次必须重新解析整个文件时,此文件非常大。该脚本如下所示: $original_file = 'path\filename.abc' $destination_file = 'path\filename.abc.new' (Get-Content $original_file) | Foreach-Object { $_ -replace 'something1', 'something1new' } | Set-Content $destination_file 我想要这样的东西,但是我不知道该怎么写: $original_file = 'path\filename.abc' $destination_file = 'path\filename.abc.new' (Get-Content $original_file) | Foreach-Object { $_ -replace 'something1', 'something1aa' $_ -replace 'something2', 'something2bb' $_ -replace 'something3', 'something3cc' $_ -replace 'something4', 'something4dd' $_ …

7
由于Internet Explorer引擎不可用,因此无法解析响应内容,或者
我需要使用powershell下载Channel 9系列,但是我尝试的脚本有错误: 这个脚本 $url="https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $rss=invoke-webrequest -uri $url $destination="D:\Videos\OfficePnP" [xml]$rss.Content|foreach{ $_.SelectNodes("rss/channel/item/enclosure") }|foreach{ "Checking $($_.url.split("/")[-1]), we will skip it if it already exists in $($destination)" if(!(test-path ($destination + $_.url.split("/")[-1]))){ "Downloading: " + $_.url start-bitstransfer $_.url $destination } } 因错误而失败: 由于Internet Explorer引擎不可用,或者Internet Explorer的首次启动配置不完整,因此无法解析响应内容。指定UseBasicParsing参数,然后重试。 我也尝试过这个 # --- settings --- $feedUrl = "https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $mediaType = …

3
“%”(百分比)在PowerShell中做什么?
似乎%操作在管道之后启动了脚本块,尽管about_Script_Blocks表示不需要%。 这些都很好。 get-childitem | % { write-host $_.Name } { write-host 'hello' } % { write-host 'hello' } 但是,当我们在管道之后添加脚本块时,我们需要先拥有%。 get-childitem | { write-host $_.Name }
106 powershell  syntax 

10
如何使用Join-Path将两个以上的字符串组合到文件路径中?
如果我想将两个字符串合并到一个文件路径中,请使用Join-Path以下命令: $path = Join-Path C: "Program Files" Write-Host $path 那打印"C:\Program Files"。如果我想对两个以上的字符串执行此操作: $path = Join-Path C: "Program Files" "Microsoft Office" Write-Host $path PowerShell引发错误: Join-Path:找不到接受参数'Microsoft Office'的位置参数。 在D:\ users \ ma \ my_script.ps1:1 char:18 + $ path = join-path <<<< C:“程序文件”“ Microsoft Office” + CategoryInfo:InvalidArgument:(:) [Join-Path] ,ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell .Commands.JoinPathCommand 我尝试使用字符串数组: [string[]] $pieces …
105 powershell 

7
如何使PowerShell选项卡完成像Bash一样工作
假设我当前目录中有以下文件: buildBar.bat buildFoo.bat buildHouse.bat 然后在命令提示符下键入以下内容,./bu然后单击确定TAB。 在Bash中,它扩展为 ./build 在PowerShell中,它扩展为./buildBar.bat-列表中的第一项。 在Cmd中,行为与PowerShell相同。 我更喜欢Bash行为-有没有办法使PowerShell像Bash一样运行?

2
将PowerShell的默认输出编码更改为UTF-8
默认情况下,当您将命令的输出重定向到文件或将其通过管道传递到PowerShell中的其他内容时,编码为UTF-16,这没有用。我希望将其更改为UTF-8。 可以根据具体情况通过将>foo.txt语法替换为来完成| out-file foo.txt -encoding utf8此操作,但这很麻烦每次都要重复。 在PowerShell中进行设置的持久方法是将它们放入其中\Users\me\Documents\WindowsPowerShell\profile.ps1。我已验证该文件确实在启动时执行。 据说可以设置输出编码,$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}但是我已经尝试过了,但是没有效果。 https://blogs.msdn.microsoft.com/powershell/2006/12/11/outputencoding-to-the-rescue/讨论$OutputEncoding乍一看似乎应该是相关的,但随后讨论的是编码输出以ASCII表示,这实际上不是实际情况。 如何将PowerShell设置为使用UTF-8?

4
显示正在运行的PowerShell脚本中的所有环境变量
我需要在运行时在PowerShell脚本中显示所有已配置的环境变量。通常,在显示环境变量时,我可以在shell上使用以下选项之一(除其他技术外,这些都很简单): gci env:* ls Env: 但是,我有一个脚本是从另一个程序中调用的,当我在脚本中使用上述调用中的一个时,我没有看到环境变量及其值,而是获得了一个System.Collections.DictionaryEntry类型列表,而不是变量及其值。 。在PowerShell脚本中,如何显示所有环境变量?


10
如何从命令提示符将布尔值传递给PowerShell脚本
我必须从批处理文件调用PowerShell脚本。脚本的参数之一是布尔值: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -File .\RunScript.ps1 -Turn 1 -Unify $false 该命令失败,并显示以下错误: Cannot process argument transformation on parameter 'Unify'. Cannot convert value "System.String" to type "System.Boolean", parameters of this type only accept booleans or numbers, use $true, $false, 1 or 0 instead. At line:0 char:1 + <<<< <br/> + CategoryInfo : InvalidData: …

8
为什么我的PowerShell脚本未运行?
我编写了一个简单的批处理文件作为PowerShell脚本,当它们运行时出现错误。 它在我的路径中的脚本目录中。这是我得到的错误: 无法加载,因为此系统上禁用了脚本的执行。请参阅“有关签名的帮助”。 我看了看帮助,但没有帮助。
103 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.