Что нового

Построчное подставление данных из файла в скрипт

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Ситуация следующая.
есть такой файл
кривулин жопорук
Ололошка ололоев
жгун адский
помогите несчастному
Количество строк в файле может меняться.
Необходимо, что бы скрипт брал по очереди каждую строку и впихивал ее значение в переменную после чего искал папку с таким названием заходил туда и удалял все что есть в этой папке. Можно так же просто удалять папку после чего создавать ее сноваа с точно таким же именем как и было.
На форуме ничего подобного ненашел.
пытался как то прочитать через fileread и тож нефига не получилось. Очень прошу помощи, т.к. буквально пару дней ковыряюсь с autoit.
Заранее спасибо.
P.S. Заранее извиняюсь за ошибки в тексте если таковые есть (а они там есть).
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Подсказка № 1
http://autoit-script.ru/index.php?topic=16330.msg100743#msg100743

Подсказка № 2
http://autoit-script.ru/index.php?topic=15577.msg96999#msg96999
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
madmasles
Мне не нужен готовый скрипт) я потому и написал сюда и именно так поставил вопрос. У меня именно с этим возникли проблемы) Я хочу сам разобраться, но с тем что я нашел на форуме у меня либо ничего не получалось либо получался какойто бред) поэтому очень прошу оставить тему там где она есть. С помощью подсказок скинутых выше попробую что нибудь сделать и то, что получится скину сюда. Если ничего не получится скину и спрошу почему я такой тупой и что я делаю не так)


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

В итоге у меня два варианта оба не годятся)
оба варианта в одном скрипте.
Код:
#include <file.au3>
$sFilePath = @ScriptDir & "\123.ini"
$sLines = _FileCountLines($sFilePath)
For $i = 1 To $sLines
    $command = FileReadLine($sFilePath, $i)
    MsgBox(0, "", $command & $i)
 Next



$data = FileReadToArray('123.ini')
MsgBox(0, "111", $data & $i)
DirRemove(@ScriptDir & $data, 1)
DirCreate(@ScriptDir & $data)
В первом варианте сообщение выводится следующего типа
кривулин жопорук1
Ололошка ололоев2
жгун адский3
помогите несчастному4
во втором варианте выводится пустое сообщение с заголовком.


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

Многое осмыслил) чуть позже скину что получилось.


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

Получилось следующее
Код:
#include <file.au3>
$sFilePath = @ScriptDir & "\123.ini"
$sLines = _FileCountLines($sFilePath)
For $i = 1 To $sLines
    $command = FileReadLine($sFilePath, $i)
    DirRemove($command, 1)
	DirCreate($command)
 Next
чистит папки указанные в файле 123.ini. В случае если на каждую папку назначены индивидуальные права доступа, то права затрутся и будут назначены права корневого каталога в котором хранятся данные папки)

Последний раз теги исправляю, дальше будут санкции.
madmasles
 

Skif_off

Знающий
Сообщения
173
Репутация
12
Tasolcheg
На всякий случай ещё было бы неплохо убирать атрибут только для чтения
Код:
;...
    FileSetAttrib($command, '-R', 1)
    DirRemove($command, 1)
;...
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Спасибо всем кто помог. Идея убирать атрибут только для чтения в моей ситуации может навредить. ибо кто то может защитить папку от чистки в надежде что это спасет)
 

Skif_off

Знающий
Сообщения
173
Репутация
12
Tasolcheg [?]
ибо кто то может защитить папку от чистки в надежде что это спасет)
Но вы об этом даже не узнаете, т.к. не проверяете возвращаемое значение DirRemove(). И в начальных условиях не было ничего подобного.
Собственно, это ваше дело :smile: Сам на днях наткнулся нечаянно и не сразу дошло, в чём дело, на всякий случай напомнил.
 

gora

Знающий
Сообщения
315
Репутация
19
Код:
#include <File.au3>
_FileReadToArray(@ScriptDir & "\123.ini", $aRecords)
For $i = 1 To $aRecords[0]
    DirRemove($aRecords[$i], 1)
    DirCreate($aRecords[$i])
Next
 
Верх