簡體   English   中英

逐行讀取文本文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM