Articles of PowerShell的

Bash'printf'相当于命令提示符?

我正在寻求在Windows的命令提示符pipe一些stringinput到一个小型的C程序。 在bash中我可以使用 $ printf "AAAAA\x86\x08\x04\xed" | ./program 本质上,我需要在命令提示符下转义那些hex数字。 在命令提示符/ PowerShell中是否有相当于或类似的printf命令? 谢谢

robocopy MAXAGE / MINAGE值,小时和分钟

我正在尝试将文件从服务器复制到另一台服务器,每小时创build一个文件。 我正在使用Robocopy来复制文件,而且非常有用。 但现在我真的坚持这一点。 我需要用分钟的MINAGE值复制文件,就像那样。 如果在下午2点之后运行robocopy,我应该只能复制2PM之前创build的文件 Robocopy MAXAGE和MINAGE只接受date而不是时间。 任何build议

标签和图片框位置碰撞

根据第一个问题,我遇到了另一个问题: 标签隐藏在PowerShell中使用Windows窗体中的PictureBox我创build下一个问题,解决它。 问题是我使用了两个不同的控件( PictureBox和Label ),我无法将PictureBox放在窗体的右上angular,而没有以表单为中心的标签的问题。 图像声明 $Image = [system.drawing.image]::FromFile("C:\xxx.png") $pictureBox = new-object Windows.Forms.PictureBox $pictureBox.Dock = [System.Windows.Forms.DockStyle]::Right $pictureBox.BackColor = "Transparent" $pictureBox.AutoSize = $True $pictureBox.Image=$Image $Form.Controls.Add($pictureBox) $pictureBox.SendToBack() 标签声明 $redLabel1 = New-Object System.Windows.Forms.Label $redLabel1.Location = New-Object System.Drawing.Size($Form.Width, $Form.Height) $redLabel1.AutoSize = $False $redLabel1.TextAlign = "MiddleCenter" $redLabel1.Dock = "Fill" $redLabel1.Text = "Something" $redLabel1.ForeColor = "Red" $redLabel1.BackColor = "Transparent" $Font = […]

通过Powershell更改Chrome设置

我想创build一个脚本来改变默认的页面缩放在Chrome中,但是我不知道这些选项存储在哪里。 我想我必须find一个合适的选项文本文件,parsing它,然后在那里使用PowerShell进行文本replace,以便应用更改。 每当我将笔记本电脑插到外接显示器上时,我都需要这样做,而且手工操作也是有点令人捧腹的 有任何想法吗?

PowerShell从命令行参数中剥离双引号

最近我一直在使用PowerShell中的GnuWin32时遇到一些麻烦,只要涉及到双引号。 经过进一步的调查,看来PowerShell从命令行参数中剥离了双引号,即使正确转义也是如此。 PS C:\Documents and Settings\Nick> echo '"hello"' "hello" PS C:\Documents and Settings\Nick> echo.exe '"hello"' hello PS C:\Documents and Settings\Nick> echo.exe '\"hello\"' "hello" 请注意,当传递给PowerShell的echo cmdlet时,双引号是存在的,但是当作为parameter passing给echo.exe时 ,除非用反斜线转义(即使PowerShell的转义字符是反引号,而不是反斜线),否则双引号将被剥离。 这对我来说似乎是一个错误。 如果我将正确的转义string传递给PowerShell,那么PowerShell应该处理任何转义可能是必要的,但是它调用该命令。 这里发生了什么? 目前,解决方法是根据这些规则来逃避命令行参数(这些规则似乎被PowerShell用来调用.exe文件的CreateProcess API调用所使用): 要传递一个双引号,用反斜线转义: \" – > " 要传递一个或多个反斜杠,然后加双引号,用另一个反斜杠转义每个反斜杠,然后转义引号: \\\\\" – > \\" 如果后面没有双引号,则反斜杠不需要转义: \\ – > \\ 请注意,进一步转义双引号可能需要将Windows API转义string中的双引号转义为PowerShell。 下面是一些使用GnuWin32的echo.exe的例子: PS C:\Documents and Settings\Nick> echo.exe […]

将string$variables传递给invoke-command scriptblock参数-name

我目前正在编写一个相对简单的PowerShell脚本来重启/停止/启动远程机器上的服务。 在我决定在Invoke-Command Scriptblock中将一个$Servicevariables传递给-Name参数之前,一切正常。 我知道我做错了什么或忘记了一些东西,但是你的帮助将不胜感激。 这里是部分代码给我突出的问题 [CmdletBinding()] Param([Parameter(Mandatory=$True,Position=1)] [string]$Server, [Parameter(Mandatory=$True)] [string]$Service) get-service -ComputerName $Server -Name "$Service" Write-Host("————————————————") Write-Host("Execute action on selected service: ") Write-Host("1. Restart service ") Write-Host("2. Stop service ") Write-Host("3. Start service") $choice = Read-Host -Prompt "Your choice" switch ($choice) { 1 {Invoke-command -Computername $Server {Restart-Service -Name "$Service" } } 2 {Invoke-command -ComputerName $Server […]

通过PowerShell创build具有path组件的registry项

对于传统应用程序,我需要创build一个名称为c:/foo/bar/baz的registry项。 (注:正斜杠,不反斜杠)要清楚:这是一个单一的键的名称,正斜杠,否则看起来像一个Windowspath。 因为我需要对很多服务器进行脚本编写,所以PowerShell看起来是一个很好的select。 问题是,我不知道如何通过PowerShell创build一个格式的密钥。 New-Item -Path HKLM:\SOFTWARE\Some\Key -Name 'c:/foo/bar/baz'错误与PowerShell认为我正在使用/作为path分隔符,无法findpathHKLM:\Software\Some\Key\c:\foo\bar ,确实不存在(也不应该)。 我无法find任何其他方式(ab)使用New-Item来获得我想要的。 有什么我失踪,或者我应该放弃,只是生成和加载registry转储的老式的方式?

如何从PowerShell中访问Web服务?

我想从Windows PowerShell中使用给定的(简单的)WSDL访问Web服务。 是否有捷径可寻?

我可以使这个剧本更快吗?

我为实习编写了一个简单的脚本,通过提供的目录浏览并删除任何超过指定天数的文件。 我已经花了我所有的空闲时间,试图收紧。 这是迄今为止我所得到的: function delOld($dir, $numDays){ $timespan = new-timespan -days $numDays $curTime = get-date get-childItem $dir -Recurse -file | where-object {(($curTime)-($_.LastWriteTime)) -gt $timespan} | remove-Item -whatif } 这是一个函数调用的例子: delOld -dir "C:\Users\me\Desktop\psproject" -numDays 5 对于阅读的难点,我发现将这些操作压缩成一行比将它们重新分配给每个迭代的易读variables更有效率。 为了testing目的,删除项目目前已被删除。 我知道,在这一点上,我可能无法加速太多,但是,我正在运行一个TB文件,所以每个操作都很重要。 预先感谢您提供的任何build议!

焦点IE浏览器窗口在PowerShell中

我的代码: $ie = new-object -com "InternetExplorer.Application" $ie.navigate("http://localhost") $ie.visible = $true $ie.fullscreen = $true 但是,全屏后,窗口仍然出现在 Windows任务栏后面 。 当我点击窗口使其焦点时,任务栏落后,并显示我想要如何。 我怎样才能做到这一点编程? 谢谢!