Вот тебе самый извращенный метод, который я когда-либо видел :)
Даже не знаю, зачем я написал такой скрипт :teeth:
Код:
#include <Array.au3>
RunWait(@ComSpec & ' /c net user > "' & @ScriptDir & '\1.txt"', '', @SW_HIDE)
If Not FileExists(@ScriptDir & '\converter.bat') Then
$bat = FileOpen(@ScriptDir & '\converter.bat', 2)
$bat_content = '@echo off' & @CRLF & _
'if [%2]==[] (' & @CRLF & _
@TAb & 'echo Convert dos866 to win1251' & @CRLF & _
@TAb & 'echo Usage: dos2win input.file output.file' & @CRLF & _
@TAb & 'exit /b 1' & @CRLF & _
')' & @CRLF & _
'set out=%2' & @CRLF & _
'chcp 866 >nul' & @CRLF & _
'for /f "tokens=*" %%a in (%1) do call :convert %%a' & @CRLF & _
'goto :eof' & @CRLF & _
'' & @CRLF & _
':convert' & @CRLF & _
'chcp 1251 >nul' & @CRLF & _
'echo %*>>%out%' & @CRLF & _
'chcp 866 >nul'
FileWrite($bat, $bat_content)
FileClose($bat)
EndIf
FileChangeDir(@ScriptDir)
ShellExecuteWait(@ScriptDir & '\converter.bat', '1.txt 2.txt', @ScriptDir, '', @SW_HIDE)
;Sleep(100)
$hUsers = FileOpen(@ScriptDir & '\2.txt', 0)
$sum = ''
While 1
$line = FileReadLine($hUsers)
If @error = -1 Then ExitLoop
$line = StringStripWS($line, 4)
If StringInStr($line, 'Учетные') OR _
StringInStr($line, '---') OR _
StringInStr($line, 'Команда выполнена') Then
ContinueLoop
Else
$sum &= $line & ' '
;For $i = 1 to $a
EndIf
WEnd
;MsgBox(0, '', $sum)
FileClose($hUsers)
FileDelete(@ScriptDir & '\2.txt')
$sum = StringStripWS($sum, 2)
$aUsers = StringSplit($sum, ' ')
For $i = 1 to $aUsers[0]
RunWait(@ComSpec & ' /c net user ' & $aUsers[$i] & ' > "' & @ScriptDir & '\' & $aUsers[$i] & '.txt"', '', @SW_HIDE)
FileChangeDir(@ScriptDir)
ShellExecuteWait(@ScriptDir & '\converter.bat', $aUsers[$i] & '.txt ' & $aUsers[$i] & '_mod.txt', @ScriptDir, '', @SW_HIDE)
Next
После того, как выполниться скрипт, найдешь в папке с ним текстовые файлы
Код:
username.txt
username_mod.txt
Второй - это в читабельном виде
|