Что нового

[Автоматизация] Чтение команд из файла

damien2008

Осваивающий
Сообщения
173
Репутация
34
Версия AutoIt: 3.3.8.1
Описание:

Враппер для обработки считанных команд - wrap.exe:

Ответ:
Код:
Run(@AutoItExe & ' /AutoIt3ExecuteScript ' & @ScriptDir & '\cmd.txt')
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Код:
$exec = FileRead('cmd.txt')
$exec = StringSplit($exec, @CRLF, 2)
For $i = 0 To UBound($exec) - 1
	If StringLeft(StringStripWS($exec[$i], 3), 1) <> ';' Then
		Execute($exec[$i])
	EndIf
Next


И в следующий раз, используй пожалуйста тег [autoit] (
autoit.gif
)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Я уже поправил, a еще лучше так:

Код:
$exec = FileRead('cmd.txt')
$exec = StringSplit($exec, @CRLF)
For $i = 1 To $exec[0]
	$exec[$i] = StringStripWS($exec[$i], 3)
	If ($exec[$i]) And (StringLeft($exec[$i], 1) <> ';') Then
		Execute($exec[$i])
	EndIf
Next
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Что выдает этот код?

Код:
$exec  = FileRead('cmd.txt')
$exec = StringSplit($exec, @CRLF)
For $i = 1 To $exec[0]
    $exec[$i] = StringStripWS($exec[$i], 3)
    If ($exec[$i]) And (StringLeft($exec[$i], 1) <> ';') Then
		ConsoleWrite($exec[$i] & @CR)
        Execute($exec[$i])
    EndIf
Next
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
damien2008 сказал(а):
DirCopy("\dir2", @ProgramFilesDir & "\dir2", 1)

Может быть все-таки так (без "\"):

Код:
DirCopy("dir2", @ProgramFilesDir & "\dir2", 1)




Добавлено:
Сообщение автоматически объединено:

damien2008 сказал(а):
наверно не правильно строки делит.
мне кажется в этом месте
Код:
For $i=0 To UBound($exec)-1 Step 1

Зачем лишний раз вызывать функцию UBound(), когда переменная $exec[0] уже содержит длину массива (количество строк). И по умолчанию для цикла For Next шаг равен 1, Step 1 - лишнее. Не нужно писать ничего лишнего, это плохой стиль программирования.



Добавлено:
Сообщение автоматически объединено:

Код:
DirCopy(@ScriptDir & "\dir2", @ProgramFilesDir & "\dir2", 1)


Еще один совет, всегда (по возможности) задавай полный путь к файлу/папке.


Добавлено:
Сообщение автоматически объединено:

А еще лучше просто написать такую строчку (если только файл cmd.txt полностью содержит команды AutoIt):

Код:
Run(@AutoItExe & ' /AutoIt3ExecuteScript ' & @ScriptDir & '\cmd.txt')


:smile:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Я прекрасно вижу, не нужно выделять текст, пожалуйста.

Кстати, это есть в правилах форума.

;)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
А как я написал выше, не подойдет?

Код:
Run(@AutoItExe & ' /AutoIt3ExecuteScript ' & @ScriptDir & '\cmd.txt')


Это выполнит сразу все команды из cmd.txt + намного быстрее.
 
Верх