循环字符串重命名

时间:2016-01-09 19:53:03

标签: powershell

我正在运行一个截取屏幕截图并保存到文件的脚本。我是一名新手并且无法集成鼠标事件,所以现在我将手动完成部分任务。

$File = "C:\Users\mydirectory\image1.bmp"

Add-Type -AssemblyName System.Windows.Forms
Add-type -AssemblyName System.Drawing

这是我正在尝试添加某些效果的地方:

Do while $File -ne "C:\Users\mydirectory\image500.bmp"

我知道这不是正确的语法,但我很难让它发挥作用。

# Gather Screen resolution information
$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
$Width = 2560
$Height = 1440
$Left = $Screen.Left
$Top = $Screen.Top

# Create bitmap using the top-left and bottom-right bounds
$bitmap = New-Object System.Drawing.Bitmap $Width, $Height

# Create Graphics object
$graphic = [System.Drawing.Graphics]::FromImage($bitmap)

# Capture screen
$graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size)

# Save to file
$bitmap.Save($File) 

Write-Output "Screenshot saved to:"
Write-Output $File

这是我迷失的地方。我在这里要完成的是隔离文件名末尾的数字并加1,循环直到达到我上面设置的数字。

Start-Sleep -s 4

我的循环中有一个睡眠声明,因为我将手动点击鼠标。

1 个答案:

答案 0 :(得分:1)

您可以这样做:

$i = 0
do {
  $i++
  $File = "C:\Users\mydirectory\image$i.bmp"
} until (-not (Test-Path -LiteralPath $File) -or $i -ge 500)

增加数字($i),直到找到不存在的文件名或$i达到500。