Что нового

Копирование файла настроек в папки

prokazzza

Новичок
Сообщения
160
Репутация
2
Вот такой вопрос, имеется папка, в ней находятся папки пронумерованные датой, новая папка создается с утра каждый день, в каждой папке есть файл настроек, файл без расширения - Options. Как можно реализовать копирование файла Options при запуске программы, заменяя все старые, во все эти папки.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 605
Репутация
2 437
prokazzza [?]
Как можно реализовать копирование файла Options при запуске программы, заменяя все старые, во все эти папки.
Куда копирование? Где заменяя? :scratch:
 

VladUs

Скриптер
Сообщения
621
Репутация
181
CreatoR [?]
Куда копирование? Где заменяя?
И что значит
новая папка создается с утра каждый день
Это равносильно как сказать, что при каждом восходе солнца создается новая папка. Папка может создаваться при включении компьютера, запуске какой - то программы и т.д...
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
Вкратце, есть на предприятии сервак, он работает круглосуточно, там работает круглосуточно прога которая создает каждое утро папку, имя папки дается новое число даты и спец символы, в которой хранятся логи за день и + к этому туда сохраняется файл настроек, но он настроен по дефолту и там не те настройки которые нужны. И приходя на работу перед запуском уже другой проги приходится вручную копировать файл с настройками в новую папку. Геморой. Нельзя ли как-нить перед запуском проги подменять в папках этот файл настроек. Просто задача в том что каждый день папка имеет новое название.
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
Спасибо но это не то что мне нужно, этот скрипт просто сует файл во все папки которые он найдет на своём пути.
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
AZJIO

А можно его немного безопасно кастрировать к примеру убрать все информационные окошки.

??
 

AZJIO

Меценат
Меценат
Сообщения
2 755
Репутация
1 150
prokazzza
Можно без проблем (в оригинале с 17 по 21 строки убрать), вот готовое:
Код:
; строку можно вынести в UDF
Global $Stack[50], $Stack1[50]
; #include <FileFind.au3> ; если вынести в UDF, то раскомментировать строку

$PathName='C:\Program Files\Programs\Options'
$PathFolder='C:\Program Files\Programs\Baza'

FileFindNextFirst($PathFolder)
While 1
	$tempname = FileFindNext('',2,49) ; поиск каталогов с вложенностью до 49 подуровня
	If $tempname = "" Then ExitLoop
	; FileSetAttrib($tempname&'\Options', '-RASHT') ; снимаем атрибуты если потребуется
	FileCopy($PathName, $tempname&'\', 1) ; копирование с выводом ошибки в список
WEnd

; ниже функции, которые можно вынести в UDF
Func FileFindNextFirst($FindCat)
	$Stack[0] = 1
	$Stack1[1] = $FindCat
	$Stack[1] = FileFindFirstFile($FindCat & "\*.*")
	Return $Stack[1]
EndFunc   ;==>FileFindNextFirst

;$mode=0 - файлы
;$mode=1 - типы файлов
;$mode=2 - каталоги
;$Level=  от 1 до 49
;$type = может иметь перечисление расширений, например exe;dll;com точнее $tempname = FileFindNext('exe;dll;com',1,1)
Func FileFindNext($type = 'log', $mode = 0, $Level = 49)
	While 1
		$file = FileFindNextFile($Stack[$Stack[0]])
		If @error Then
			FileClose($Stack[$Stack[0]])
			If $Stack[0] = 1 Then
				Return ""
			Else
				$Stack[0] -= 1
				ContinueLoop
			EndIf
		Else
			If StringInStr(FileGetAttrib($Stack1[$Stack[0]] & "\" & $file), "D") > 0 Then
				If $Stack[0] = $Level Then ContinueLoop
				$Stack[0] += 1
				$Stack1[$Stack[0]] = $Stack1[$Stack[0] - 1] & "\" & $file
				$Stack[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
				If $mode = 2 Then
					Return $Stack1[$Stack[0]]
				Else
					ContinueLoop
				EndIf
			Else
				If $mode = 2 Then ContinueLoop
				If $mode = 1 Then
					;If StringInStr (';'&$type&';', ';'&StringRight($Stack1[$Stack[0]] & "\" & $file, 3)&';')=0  Then
					If StringInStr (';'&$type&';', ';'&StringRegExpReplace($Stack1[$Stack[0]] & "\" & $file, '.*\.(\S+)', '\1')&';')=0  Then
						ContinueLoop
					Else
						Return $Stack1[$Stack[0]] & "\" & $file
					EndIf
				Else
					Return $Stack1[$Stack[0]] & "\" & $file
				EndIf
			EndIf
		EndIf
	WEnd
EndFunc   ;==>FileFindNext
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 714
AZJIO

Не удаляй пожалуйста свои посты, когда после них ответили другие участники форума, а то теряется смысл последних.
 

XpycT

Скриптер
Сообщения
380
Репутация
132
prokazzza
А можешь привести пример имени папки с датой (в каком формате указывается дата) и спец символами
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
AZJIO

Спасибо, вроде все работает )

XpycT

03312011»56999
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
AZJIO

Твой скрипт заменил содержимое всех документов, всех текстовых файлов, файлов настроек и т.д. на содержимое файла настроек. Прежде чем выкладывать уж можно было потратить минуту на проверку того что предлагаете. Хорошо что не запустил на серваке все предприятие накрылось бы.

XpycT

Тоже меняется с датой.
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
Мля за такое вообще в бан надо, скрипт меняет все что видит на своем пути и видио и аудио, программы короче все!!!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 320
OffTopic:
prokazzza
А я до сих пор так и не понял, что и куда надо перемещать. :wacko:
 

AZJIO

Меценат
Меценат
Сообщения
2 755
Репутация
1 150
prokazzza
Не читал эту тему, но скрипт я проверял много больше минуты, обычно 5 (и более) минут нужно только на угадывание того что требуется, пол-часа - час на реализацию, потом полчаса на тест - создание папок, наполнение контентом и файлами Options (то есть скрипт генерирующий всё это), старт скрипта, проверки извенений в файлах.

Прежде чем запускать скрипт у себя рекомендуется сначала сделать тестовые копии базы и убедится, что скрипт обработает их нормально.


prokazzza [?]
А можно его немного безопасно кастрировать к примеру убрать все информационные окошки.
Видимо информационных окон нужно было добавить для начала.

И вдобавок у меня подозрение на кривую модификацию. Команда FileCopy копирует файл Options в каждую папку, как и было сказано в первом посте, заменяя страрый файл настроек в каждой папке на новый (никаких аудио он не трогает).

То что вы рискуете (не тестируете на пустышках свою кривую модификацию), вините в этом себя а не других.

Ещё раз проверил скрипт (не поленился). Он копирует указанный файл Options во все подкаталоги указанного каталога с заменой. Другие файлы не трогает. Ищите проблемы в своей модификации.
 
Верх