Что нового

подправить скрипт яндекс диск

otto2012

Новичок
Сообщения
16
Репутация
0
версия 3.3.14.0
скрипт копирует файлы на яндекс диск, нужно что бы он заменял файлы по названию если там есть файлы, если нету файла в папке то просто копировало.
ну или же скрипт который будет удалять файлы, и очищал корзину яндекс диска

Примечания: спасибо заранее
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\..\W7Def.ico
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_Run_Au3Stripper=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$sFrom = IniRead(@ScriptDir & '\Settings.ini', 'Paths', 'Source', '')
$sTo = IniRead(@ScriptDir & '\Settings.ini', 'Paths', 'Target', '')
$sExtension = IniRead(@ScriptDir & '\Settings.ini', 'Logic', 'Extension', 'exe')

ProgressOn('Копирование файлов', 'Выполняется последовательное копирование файлов')

$hFirst = FileFindFirstFile($sFrom & '\*.' & $sExtension)
While 1
	$hNext = FileFindNextFile($hFirst)
	If @error Then ExitLoop

	$sName = StringLeft($hNext, StringInStr($hNext, '.', 0, -1) - 1)

	$hNext2 = ''
	$hFirst2 = FileFindFirstFile($sTo & '\' & $sName & '\*')
	While 1
		$hNext2 = FileFindNextFile($hFirst2)
		If @error Then ExitLoop

		If StringInStr(FileGetAttrib($sTo & '\' & $sName & '\' & $hNext2), 'D') Then ExitLoop
	WEnd
	If $hNext2 = '' Then ContinueLoop

	FileCopy($sFrom & '\' & $hNext, $sTo & '\' & $sName & '\' & $hNext2 & '\' & $hNext)

	ProgressSet(Random(1, 100), $hNext)
WEnd

ProgressOff()
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
otto2012 [?]
скрипт копирует файлы на яндекс диск
Начнём с того, что этот скрипт не копирует файлы на Яндекс Диск.

нужно что бы он заменял файлы
Яндекс Диск API ©
[box title=Копирование (COPY)]COPY /pictures/lion.png HTTP/1.1
Host: webdav.yandex.ru
Accept: */*
Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07
Destination: /animals/lion.png
Overwrite: F

Заголовок Overwrite можно задать, чтобы запретить перезапись уже существующего файла с таким именем.
Значение T, по умолчанию, разрешает перезапись, значение F — запрещает. Если в каталоге /animals/ уже есть
файл lion.png, то запрос из примера не будет выполнен.

Если копирование прошло успешно, возвращается следующий ответ:

HTTP/1.1 201 Created
Content-Length: 0[/box]
 
Автор
O

otto2012

Новичок
Сообщения
16
Репутация
0
Garrett сказал(а):
otto2012 [?]
скрипт копирует файлы на яндекс диск
Начнём с того, что этот скрипт не копирует файлы на Яндекс Диск.

нужно что бы он заменял файлы
Яндекс Диск API ©
[box title=Копирование (COPY)]COPY /pictures/lion.png HTTP/1.1
Host: webdav.yandex.ru
Accept: */*
Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07
Destination: /animals/lion.png
Overwrite: F

Заголовок Overwrite можно задать, чтобы запретить перезапись уже существующего файла с таким именем.
Значение T, по умолчанию, разрешает перезапись, значение F — запрещает. Если в каталоге /animals/ уже есть
файл lion.png, то запрос из примера не будет выполнен.

Если копирование прошло успешно, возвращается следующий ответ:

HTTP/1.1 201 Created
Content-Length: 0[/box]

я извиняюсь я плохо опись сделал, я делаю синхронизация яндекс диск на пк. и кидаю файлы на диск по пути D:\1 YANDEKS\4 YANDEKS SULKI\5 но они не обновляются

спасибо за поправку думаю доведу до ума скрипт используя ваш пример (набросок)

Settings.ini
[Paths]
Source=D:\Program rar\Program
Target=D:\1 YANDEKS\4 YANDEKS SULKI\5

[Logic]
Extension=rar
 

Skif_off

Знающий
Сообщения
173
Репутация
12
otto2012
То, о чём написал Garrett, это типа такого http://autoit-script.ru/index.php?topic=14684.0 , у вас же, так понял, - локальная папка и программа синхронизации от Яндекс: у функции FileCopy() есть флаги 1 (перезаписывать существующие файлы) и 8 (создавать дерево каталогов, если путь назначения не существует), т.е. нужно писать
Код:
FileCopy($sFrom & '\' & $hNext, $sTo & '\' & $sName & '\' & $hNext2 & '\' & $hNext, 1 + 8)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
otto2012

Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.





Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Верх