Я начал свой путь с изучения оболочки Power Power и щедрой обратной связи с другими, я наконец почти закончил свой первый полезный сценарий и настроил его по своему вкусу. Мне просто нужно немного помочь, чтобы преодолеть это последнее препятствие, я Я пробовал несколько методов и просто не могу получить желаемый результат
Цель
Чтобы взять текстовый файл, который включает в себя следующий беспорядок
Set WN = CreateObject("WScript.Network")
Set Ws = CreateObject("WScript.shell")
US=WN.USERNAME
D="q,\\abc-filesvr-03\shared$,g,\\abc-ngfs-01\pingate$,s,\\abc-ngfs-01\mdis-com$,i,\\abc-civica-01\icondata$"
A=SPLIT(D,",")
DO UNTIL B>UBOUND(A)
MAPDRIVE A(B),A(B+1)
B=B+2
LOOP
Sub MapDrive(DriveLetter, UNCPath)
on error resume next
WN.RemoveNetworkDrive DriveLetter&":",1,1
on error resume next
WN.MapNetworkDrive DriveLetter&":",UNCPath
if err<>0 then
'ws.EXEC "msg.exe %username% Message from LOGON script - Error connecting drive " & DriveLetter & " to " & UNCPath & " - user is " & US& " - Further message is - " & err.description
'ER " Message from LOGON script - Error connecting drive " & DriveLetter & " to " & UNCPath & " - user is " & US& " - Further message is - " & err.description
end if
End Sub
sub er(m)
m = m & wn.computername
PF = "\\abc-ngfs-01\logons$\ERRORS"
PT = PF & "\" & US
SET OBJFSO = CREATEOBJECT("scripting.filesystemobject")
if OBJFSO.FOLDEREXISTS(PF) THEN
F = 1
DO UNTIL NOT OBJFSO.FILEEXISTS(PT & F)
F = F + 1
LOOP
OBJFSO.CREATETEXTFILE(PT & F)
set fl = OBJFSO.opentextfile(PT & F,8)
fl.write(DATE & "[]" & TIME & "[]" & us & "[]" & m & "[][][]")
fl.close
set fl = nothing
END IF
end sub
Извлеките части, которые включают в себя диски (ниже), и сохраните их в переменной для последующего использования
D="q,\\abc-filesvr-03\shared$,g,\\abc-ngfs-01\pingate$,s,\\abc-ngfs-01\mdis-com$,i,\\abc-civica-01\icondata$"
В зависимости от используемого текстового файла имена дисков будут меняться, поэтому я не могу предварительно указав это
Я экспериментировал с попыткой использования файловых фильтров, в которых есть список слов или символов, которые нужно исключить - похоже, ничего не получилось с этим
Например
$inputfile = "C:\users\admin\desktop\inputfile.txt"
$outputfile = "C:\users\admin\desktop\outputfile.txt"
$filterFile = "C:\users\admin\desktop\filterFile.txt"
$filters = Get-Content $filterFile
Get-Content $inputFile | Select-String -pattern $filters -notMatch | Out-File $outputFile
Просто интересно, может ли кто-нибудь придумать эффективный метод для использования, так как мне кажется, что я слишком усложняю это?