1 (изменено: Logonius, 2022-06-02 15:52:10)

Тема: AHK: Копирование файлов и папок исключая самого себя

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

Команда простая, но скорей всего ее как то нужно дополнить, потому что когда я переношу скрипт на диск С например, то весь рабочий стол копируется отлично.


FileCreateDir , test
FileCopyDir %A_Desktop%, test\test, 1

2 (изменено: Foma, 2022-06-02 18:15:34)

Re: AHK: Копирование файлов и папок исключая самого себя

Наверное над сначала использовать

Loop (файлы и папки)
Возвращает указанные файлы или папки по одному/одной.
Loop, FilePattern [, IncludeFolders?, Recurse?]

и создать условие, что при не обнаружении "себя" копировать текущий файл или папку, а при обнаружении - пропускать.

3

Re: AHK: Копирование файлов и папок исключая самого себя

Foma

Сложно пока что, можно пример, пожалуйста.

4 (изменено: Logonius, 2022-06-03 05:22:08)

Re: AHK: Копирование файлов и папок исключая самого себя

Нашел код, делает то, чо мне нужно.

ErrorCount := CopyFilesAndFolders ("%A_Desktop%\*.*", "test")
if ErrorCount <> 0
    MsgBox %ErrorCount% files/folders could not be copied.

CopyFilesAndFolders(SourcePattern, DestinationFolder, DoOverwrite = true)
{
    FileCopy, %SourcePattern%, %DestinationFolder%, %DoOverwrite%
    ErrorCount := ErrorLevel
    Loop, %SourcePattern%, 2
    {
        FileCopyDir, %A_LoopFileFullPath%, %DestinationFolder%\%A_LoopFileName%, %DoOverwrite%
        ErrorCount += ErrorLevel
        if ErrorLevel
            MsgBox Could not copy %A_LoopFileFullPath% into %DestinationFolder%.
    }
    return ErrorCount

Подскажите, как мне вот сюда > CopyFilesAndFolders ("%A_Desktop%\*.*", "test"), засунуть переменную рабочего стола?, потому как софт будет использоваться не только у меня на пк.

5

Re: AHK: Копирование файлов и папок исключая самого себя

A_Desktop "\*.*"
Win10: LTSC (v1809); AHK: ANSI (v1.1.33.10)

6

Re: AHK: Копирование файлов и папок исключая самого себя

Phoenixxx_Czar
Огромное спасибо.

7 (изменено: Logonius, 2022-06-03 07:54:49)

Re: AHK: Копирование файлов и папок исключая самого себя

Такой еще вопрос, почему с рабочего стола копируются все в папку, а с папки, обратно потом на рабочий стол эти же папки/файлы не копируются, если указать что файлы/папки будут копироваться в папку на рабочем столе, то все ок, а чисто на рабочий стол не может.

Код тот же выше, только пути просто местами поменяны

UPD: Разобрался.