使用 Powershell Out-Printer 到文件时控制输出位置
Control output location when using Powershell Out-Printer to a File
我有一个 Powershell 脚本,可以从服务器上的文件夹中检索所有图像文件(.jpg、.png)并将它们 "prints" 到一个文件,特别是使用特定打印驱动程序的 .prn 文件。所有这些都很好。问题是我不知道如何控制 "printing" 的输出去向,即它把生成的 .prn 文件放在哪里。他们总是转到我电脑上的图片文件夹。我希望将它们放入输入图像所在的同一服务器文件夹中。在上周,我搜索了 Powershell out-print、out-file 等我想尝试的所有组合,但到目前为止还没有找到解决方案。任何帮助,将不胜感激。这是我当前的脚本。
$VerbosePreference = "Continue"
add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
$newext = ".prn"
$Directory = "\192.168.30.46\resource\Item\"
$files = Get-ChildItem -Path $Directory –File
$focus = 2000
for ($i=0; $i -lt 5; $i++) {
$newfile = $files[$i].BaseName + $newext
Start-Process $files[$i].FullName -verb Print | out-printer -name "Page Segment Print File"
start-sleep -Milliseconds $focus
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait($newfile)
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 1500
$focus = 250
}
Write-Verbose "Print Files Generated"
创建定义的根位置并连接,以便完全定义输出位置。
$VerbosePreference = "Continue"
add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
$rootdir = "C:\Temp\"
$newext = ".prn"
$Directory = "\192.168.30.46\resource\Item\"
$files = Get-ChildItem -Path $Directory –File
$focus = 2000
for ($i=0; $i -lt 5; $i++) {
$newfile = $files[$i].BaseName + $newext
Start-Process $files[$i].FullName -verb Print | out-printer -name "Page Segment Print File"
start-sleep -Milliseconds $focus
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait($(Join-Path $rootdir $newfile))
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 1500
$focus = 250
}
Write-Verbose "Print Files Generated"`
我有一个 Powershell 脚本,可以从服务器上的文件夹中检索所有图像文件(.jpg、.png)并将它们 "prints" 到一个文件,特别是使用特定打印驱动程序的 .prn 文件。所有这些都很好。问题是我不知道如何控制 "printing" 的输出去向,即它把生成的 .prn 文件放在哪里。他们总是转到我电脑上的图片文件夹。我希望将它们放入输入图像所在的同一服务器文件夹中。在上周,我搜索了 Powershell out-print、out-file 等我想尝试的所有组合,但到目前为止还没有找到解决方案。任何帮助,将不胜感激。这是我当前的脚本。
$VerbosePreference = "Continue"
add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
$newext = ".prn"
$Directory = "\192.168.30.46\resource\Item\"
$files = Get-ChildItem -Path $Directory –File
$focus = 2000
for ($i=0; $i -lt 5; $i++) {
$newfile = $files[$i].BaseName + $newext
Start-Process $files[$i].FullName -verb Print | out-printer -name "Page Segment Print File"
start-sleep -Milliseconds $focus
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait($newfile)
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 1500
$focus = 250
}
Write-Verbose "Print Files Generated"
创建定义的根位置并连接,以便完全定义输出位置。
$VerbosePreference = "Continue"
add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
$rootdir = "C:\Temp\"
$newext = ".prn"
$Directory = "\192.168.30.46\resource\Item\"
$files = Get-ChildItem -Path $Directory –File
$focus = 2000
for ($i=0; $i -lt 5; $i++) {
$newfile = $files[$i].BaseName + $newext
Start-Process $files[$i].FullName -verb Print | out-printer -name "Page Segment Print File"
start-sleep -Milliseconds $focus
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait($(Join-Path $rootdir $newfile))
start-sleep -Milliseconds 250
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Milliseconds 1500
$focus = 250
}
Write-Verbose "Print Files Generated"`