Что нового

Создать пользователя из имени файла

[email protected]

Новичок
Сообщения
5
Репутация
0
Версия AutoIt:3.3.6.1 3.

Помогите пожалуйста. Нужен скрипт который возьмет имя файла и с этим именем создаст пользователя. Имя файла заранее не известно скрипт должен на СD диске найти файл у которого не будет расширения и он будет нулевого размера (он там будет такой один) взять имя этого файла и создать с этим именем пользователя. За ранее спасибо.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Что-то вроде...
Код:
#Include <WinAPIEx.au3>
#include <Array.au3>
	Global $Drive = DriveGetDrive('CDROM')
If IsArray($Drive) Then
		ConsoleWrite('Open...' & @CR)
		_WinAPI_EjectMedia($Drive[1])
		MsgBox(0, "Вставьте диск", "Вставьте диск в привод '"&$Drive[1]&"' с файлом")
		ConsoleWrite('Close...' & @CR)
		_WinAPI_LoadMedia($Drive[1])
	EndIf
$aReturn = _FileSearch($Drive[1], "*.")
For $i = 1 To $aReturn[0]
	If StringInStr(FileGetAttrib($aReturn[$i]), 'D') Then
	Else
		If (FileGetSize($aReturn[$i]) == "0" ) Then
			$filename=StringRegExp($aReturn[$i],'(^.*)\\(.*)(.*)$',3)
			MsgBox(0, "", "В одном из роддомов города родился новый пользователь с именем: "&$filename[1])
		EndIf
	EndIf
Next

Func _FileSearch($sPath, $sFileMask, $iFlag = 0)
    Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib
    Switch $iFlag
        Case 1
            $sAttrib = ' /A-D'
        Case 2 
            $sAttrib = ' /AD'
        Case Else 
            $sAttrib = ' /A'
    EndSwitch
    $sOut = StringToBinary('0' & @CRLF, 2)
    $aMasks = StringSplit($sFileMask, ';')
    For $i = 1 To $aMasks[0]
;~ 		MsgBox(0,"", @ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '" /S /B' & $sAttrib)
        $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '" /S /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
        While 1
            $sRead = StdoutRead($hDir, False, True)
            If @error Then
                ExitLoop
            EndIf
            If $sRead <> "" Then
                $sOut &= $sRead
            EndIf
        Wend
    Next
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
    If @error Then
        Return SetError(1)
    EndIf
    $aOut[0] = UBound($aOut)-1
    Return $aOut
EndFunc
 
Верх