Чтение текстового файла построчно - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в 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

Я просто не могу заставить это работать.

РЕДАКТИРОВАТЬ:

Что я пытаюсь выполнить sh:

Мы перешли с одного сервера хранения на новый сервер хранения.

ASRV1 на FSSRV

Я хочу создать ярлык из asrv1 в фссрв. Наряду с обновлением мы также меняем домены и меняем всех windows имен пользователей.

Например, мое имя пользователя было fMunoz, и оно было изменено на fMunoz00.

Я хочу вытащить из текстовый файл> users.txt со всеми старыми именами пользователей и создание ярлыков для нового файла хранения имен пользователей, имена этих пользователей находятся в текстовом файле с именем users1.txt.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Я хочу поблагодарить всех за помощь.

Я нашел другое решение для моей проблемы. Я решил эту проблему, создав таблицу Excel с двумя столбцами.

СТАРЫЕ ПОЛЬЗОВАТЕЛИ | НОВЫЕ ПОЛЬЗОВАТЕЛИ

Затем я создал слияние с помощью Microsoft Word. Затем я продолжил со следующим кодом в powershell, чтобы запустить мой l oop:

$ WshShell = New-Object -comObject WScript.Shell

Как только мой l oop был запущен с i затем использовал слияние, чтобы взять <> из листа Excel и заменить его на вставку в мой код. Также взял <> и сделал то же самое.

$ Shortcut = $ WshShell.CreateShortcut ("\ Fssrv \ homeshares $ \« New_Users »\« Old_Users »_Z Drive.lnk") $ Shortcut.TargetPath = "\ asrv1 \ users \ «Old_Users» "$ Shortcut.Save ()

Надеюсь, это может помочь любому другому, пытающемуся сделать sh нечто подобное.

Еще раз, спасибо и удачи ...

0 голосов
/ 05 февраля 2020

Если я понимаю ваш запрос, вы хотите создать ярлыки в каждом домашнем каталоге людей в Users1.txt

Это означает, что вам нужно будет выполнить несколько циклов ForEach для циклического прохождения обоих текстовых файлов.

$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()
    }
}
...