[英]Reading a text file line by line
我是 Power Shell 的新手,似乎无法正确处理此脚本。
$WshShell = New-Object -comObject WScript.Shell
$users = Get-Content '\\fssrv\homeshares$\fMunoz00\Desktop\users.txt'
$users1 = Get-Content '\\fssrv\homeshares$\fMunoz00\Desktop\users1.txt'
$Shortcut = $WshShell.CreateShortcut("\\Fssrv\homeshares$\$users1\$users.lnk")
$Shortcut.TargetPath = "\\asrv1\users\$users"
$Shortcut.Save()
每次访问“users.txt”时,它都会尝试将其作为完整文件读取。 相反,我希望它阅读如下:
User1
User2
User3
我似乎无法让它发挥作用。
重新编辑:
我想要完成的事情:
我们从一台存储服务器转到了一台新的存储服务器。
ASRV1 到 FSSRV
我想创建一个从 asrv1 到 fssrv 的快捷方式。 随着升级,我们也在更改域并更改每个人的 Windows 用户名。
例如,我的用户名是 fMunoz,它已更改为 fMunoz00。
我想从文本文件 > users.txt 中提取所有旧用户名,并创建新用户名存储文件的快捷方式,这些用户名位于名为 users1.txt 的 txt 文件中。
如果我理解你的要求,你想在Users1.txt
每个人的主目录中创建快捷方式
这意味着您将需要完成多个ForEach
循环才能遍历两个 txt 文件。
$WshShell = New-Object -comObject WScript.Shell
$users = Get-Content '\\fssrv\homeshares$\fMunoz00\Desktop\users.txt'
$users1 = Get-Content '\\fssrv\homeshares$\fMunoz00\Desktop\users1.txt'
# For every line in $users1, Do something
Foreach($User in $users1) {
# For every line in $users, Do something
Foreach($Name in $users) {
$Shortcut = $WshShell.CreateShortcut("\\Fssrv\homeshares$\$User\$Name.lnk")
$Shortcut.TargetPath = "\\asrv1\users\$Name"
$Shortcut.Save()
}
}
我要感谢所有帮助我的人。
我想出了一个不同的解决方案来解决我的问题。 我解决这个问题的方法是创建一个带有 2 列的 Excel 工作表。
老用户 | 新用户
然后我使用 Microsoft Word 创建了一个邮件合并。 然后我继续在 powershell 中使用以下代码来开始我的循环:
$WshShell = New-Object -comObject WScript.Shell
一旦我的循环开始,我就利用邮件合并从 Excel 表中获取 <> 并将其替换为将其插入到我的代码中。 也拿了 <> 并做了同样的事情。
$Shortcut = $WshShell.CreateShortcut("\\Fssrv\\homeshares$\\«New_Users»\\«Old_Users»_Z Drive.lnk") $Shortcut.TargetPath = "\\asrv1\\users\\«Old_Users»" $Shortcut.Save()
我希望这可以帮助其他人尝试完成类似的事情。
再次感谢,祝你好运...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.