我目前正在编写一个脚本,该脚本可以读取工作站上的标准打印机并将其写入文本文件。现在我需要转换或剪切输出字符串并将其写入另一个文件,以便将剪切的字符串设置为新的默认打印机。
例如,第一个文本文件内容是这样的:
\NDPS-mydomain\myprinter.ou.cn.mydomain.de
我想得到这个:
PS-myprinter
“myprinter”的字符数因打印机而异。
我被困在从完整的字符串中切割出我需要的部分。
背景:我进行了从 Novell 到 Microsoft 的大型打印服务器迁移。为了尽可能减少对用户的影响,我想再次使用此脚本将新部署的微软打印机设置为默认打印机。希望这是可以理解的。
对不起,我的英语不好。
提前致谢
到目前为止的示例代码:
$name = (get-content env:Computername)
Get-WmiObject -Class Win32_Printer -Filter "Default = $true" |
Select-Object - expandProperty Name |
Out-File -filepath C:\"$name"_defaultprinter.txt
Get-Content "C:\"$name"_defaultprinter.txt" |
Foreach-Object {$_.Replace("NDPS","PS")} |
Set-Content "C:\"$name"_defaultprinter.txt"
这是输出:
\\mydomain\NDPS-MJP1-0014-SamsungML3471.A-Printers.MJP1.xx-xxxx.xxxxx-xxxxx.DE
\\mydomain\NDPS-MJP1-0014-SamsungML3471.A-Printers.MJP1.xx-xxxx.xxxxx-xxxxx.DE
输出应该只是PS-MJP1-0014-SamsungML3471