Что нового

Список файлов в директории с записью в txt

ev83gen

Новичок
Сообщения
5
Репутация
0
Добрый день, со au3 вообще не знаком, но вроде понимаю о чем в скриптах речь идет. Проблема следующая: есть один скрипт, который отлично работает когда его ручками запускаешь, а если через планировщик Win, то нет ожидаемого результат. Вот бы мне в него строчку с кодом добавить, а я не могу.
Так что прошу помощи у всех сочувствующих, нужен код который выведет в текстовый файл список рядом лежащих файлов(содержание папки, в которой лежит сам скрипт).
Очень прошу помощи, а то у меня встал переход с win 2003
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
#include <File.au3>
$filelist = _FileListToArray(@ScriptDir, "*", 1)
_FileWriteFromArray(@ScriptDir & "\filelist.txt", $filelist)
 
Автор
E

ev83gen

Новичок
Сообщения
5
Репутация
0
Спасибо большое, прям выручил :smile:


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

А не подскажешь где по нему документацию глянуть, что бы без воды, ну типа справочника html что ли
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
hedji
Вот так оформляется ссылка.
[url=https://autoit-script.ru/autoit3_docs/index.htm]Русская справка[/url]
 
Автор
E

ev83gen

Новичок
Сообщения
5
Репутация
0
А можно еще вопрос, может подскажите, а то к врачу скоро пойду.
У есть скрипт, который обращается в рядом лежащий файл ini, согласно ему заходит в 1с, делает выгрузку и закрывает 1с.
В ini говорится кол-во баз, пароль логин и путь к базам. этот скрипт сейчас выполняется на win 2003 через планировщик все работает.
Я перенес его на win2008, если скрипт запустить ручками, то все работает, а вот если через планировщик, то результата нет и в логах он определяет количество
баз 0, я подумал что он файл ini не видит, вот тут мне и понадобилась ваша помощь(спасибо за то что быстро отреагировали). Вставил код в скрипт, запустил, оказывается файл ini видит, проверку свободного места делает, а вот количество баз равно 0, а у меня там 49. Почему так планировщик влияет? у меня голова кипит, не встречались с таким?
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Вручную вы запускаете от своего имени, а планировщик от имени системы, отсюда могут быть грабли с:
- права доступа к самому файлу
- права доступа к папке с файлом
- пути к файлу и в самом скрипте, завязанные на учетку

Проверьте права доступа, замените все относительные пути на полные, желательно без кириллицы.
 
Автор
E

ev83gen

Новичок
Сообщения
5
Репутация
0
не понял на счет:

- пути к файлу и в самом скрипте, завязанные на учетку

В коде вроде нет привязке к учетке, но сейчас просмотрю еще раз, могу полный код показать.
А планировщик запускает от имени доменного Администратора, но сейчас все просмотрю еще раз.
да вообще скрипт то в файл заходит, так как у меня там есть проверка свободного места. Сейчас скину начало скрипта и логи.


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

вот начало скрипта:

Код:
#include <File.au3>
#include <Date.au3>
$year=@YEAR
$week=_WeekNumberISO(@YEAR,@MON,@MDAY)
if $week < 10 and stringlen($week)=1 then $week='0' & $week
$day=@WDAY-1
if $day=0 then $day=7
$Year = @YEAR
$kolvo=iniread("megavigr.ini","settings","kolvo","0")
$freespace=iniread("megavigr.ini","settings","freespace","1024")
$syslogfile=iniread("megavigr.ini","settings","syslogfile","c:\1.log")
$filelist = _FileListToArray(@ScriptDir, "*", 1)
_FileWriteFromArray(@ScriptDir & "\filelist.txt", $filelist)
_FileWriteLog($syslogfile,"MegaVigr start at " & _Now())
_FileWriteLog($syslogfile,"kolvo is " & $kolvo)
_FileWriteLog($syslogfile,"freespace is " & $freespace)
$default_name=iniread("megavigr.ini","0","name","pusto")
$default_path=iniread("megavigr.ini","0","path","pusto")
$default_user=iniread("megavigr.ini","0","user","user")
$default_pass=iniread("megavigr.ini","0","pass","pass")
$default_vigrpath=iniread("megavigr.ini","0","vigrpath","pusto")
$default_vigrname=iniread("megavigr.ini","0","vigrname","pusto")
$default_logneed=iniread("megavigr.ini","0","logneed","1")
$default_logpath=iniread("megavigr.ini","0","logpath","pusto")
for $i=1 to $kolvo


Вот файл ini:

Код:
[settings]
kolvo=49
freespace=1024
syslogfile=c:\1.log
[0]
name=дефолтовые настройки
path=
user=Администратор
pass=111111111
vigrpath=z:\megavigr\zip\
vigrname=
logneed=1
logpath=z:\megavigr\log\
[1]
name=База1
path=O:\1c_base\Base1.buh\
user=
pass=
vigrpath=
vigrname=база1
logneed=
logpath=
[2]
name=База2
path=O:\1c_base\Bse2\
.................

а вот запись в логах из под планировщика:

Код:
2017-03-23 15:40:39 : MegaVigr start at 23.03.2017 15:40:39
2017-03-23 15:40:39 : kolvo is 0
2017-03-23 15:40:39 : freespace is 1024
2017-03-23 15:41:46 : MegaVigr start at 23.03.2017 15:41:46
2017-03-23 15:41:46 : kolvo is 0
2017-03-23 15:41:46 : freespace is 1024
2017-03-23 19:25:01 : MegaVigr start at 23.03.2017 19:25:01
2017-03-23 19:25:01 : kolvo is 0
2017-03-23 19:25:01 : freespace is 1024
2017-03-23 19:25:47 : MegaVigr start at 23.03.2017 19:25:47
2017-03-23 19:25:47 : kolvo is 0
2017-03-23 19:25:47 : freespace is 1024

а вот запись в логах если ручками:

Код:
2017-03-24 09:14:24 : MegaVigr start at 24.03.2017 9:14:24
2017-03-24 09:14:24 : kolvo is 49
2017-03-24 09:14:24 : freespace is 1024
2017-03-24 09:14:24 : starting  1 job of 49
2017-03-24 09:14:24 :  job 1, create C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 1, write C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 1, close C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 1, make dir for vigruzka с:\megavigr\zip\2017_12\
2017-03-24 09:14:24 :  job 1, check free space on drive с:\
2017-03-24 09:14:24 :  job 1, check free space on drive с:\ failed!
2017-03-24 09:14:24 :  job 1, save log to с:\megavigr\log\Buh1.txt
2017-03-24 09:14:24 : starting  2 job of 49
2017-03-24 09:14:24 :  job 2, create C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 2, write C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 2, close C:\Users\836D~1\AppData\Local\Temp\megavigr.prm
2017-03-24 09:14:24 :  job 2, make dir for vigruzka с:\megavigr\zip\2017_12\

Вот, теперь проверка свободного места не проходит, а место есть, что такое......

Скрипт скомпилированный в exe, права на папку и на файл явно указал Администратора. Запуск ручками имею ввиду клик по exe, а вот с планировщика, даже если нажать на задание правой кнопкой мыши и инициировать задание, то вышеописанная проблема.
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
$kolvo=iniread("megavigr.ini","settings","kolvo","0") ;если не найдено, вернуть 0
$freespace=iniread("megavigr.ini","settings","freespace","1024") ;если не найдено, вернуть 1024

ровно столько и возвращает.
сделайте:
Код:
$kolvo=iniread("megavigr.ini","settings","kolvo","0")
$freespace=iniread("megavigr.ini","settings","freespace","0")

если в логах будет два нуля, значит ini не читается.
 
Автор
E

ev83gen

Новичок
Сообщения
5
Репутация
0
Поменял, два нуля выдает, и куда копать, как планировщик так извращенно его запускает? Ладно сейчас попробую абсолютный путь указать.
кстати так правильно будет?

Код:
$kolvo=iniread("c:\megavigr.ini","settings","kolvo","0")



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

Вот, скрипт отработал. Я просто в планировщике рабочую папку не указал, прописал папку и все пошло. Спасибо большое за помощь и за терпение. Надеюсь в следующий раз внимательнее буду.
 
Верх