[英]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.