Что нового

Копирование файла с добавлением к имени тек.даты

orange3100

Новичок
Сообщения
18
Репутация
0
Доброго времени суток, уважаемые форумчане, подскажите, как дописать скрипт:

1 Этап: Копирование выбранного файла в требуемую директорию (этот этап работает, возможно, что-то косо написано, но выбираешь файл, запускаешь скрипт и он оказывется в требуемой папке)
Код:
$dir = 'C:\J'
        
; (1) Копирование выбранного [Полного пути файла] в Буфер обмена
        Send('^{INS}')

; (2) Получение [Полного пути файла]
        $sData = ClipGet()

; (3) Вставка файла [Полного пути файла]
        FileCopy($sData, $dir)


2 Этап: Добавление даты в виде "ГГГГ.ММ.ДД" в начало имени скопированного файла
а вот с этим этапом, что-то пока не могу понять в какое русло идти?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
Код:
$dir = 'C:\J'

Send('^{INS}')
Sleep(33)
$sData = ClipGet()

$aName = StringRegExp($sData, "[^\\]+$", 1)
If @error Then Exit

$sName = @YEAR & "." & @MON & "." & @MDAY & "_" & $aName[0]
$dir &= "\" & $sName

FileCopy($sData, $dir)
 
Автор
O

orange3100

Новичок
Сообщения
18
Репутация
0
Код:
$dir = 'C:\J'

Send('^{INS}')
Sleep(33)
$sData = ClipGet()

$aName = StringRegExp($sData, "[^\\]+$", 1)
If @error Then Exit

$sName = @YEAR & "." & @MON & "." & @MDAY & "_" & $aName[0]
$dir &= "\" & $sName

FileCopy($sData, $dir)
Эта штука работает! Благодарю Вас! Попробую подумать над методом, без регулярных выражений, это пока для меня Высшая математика)) Главное логику понял!
 

Norm

Продвинутый
Сообщения
291
Репутация
76
Если метод не найдёте, то вот альтернатива без регулярных выражений.
Код:
$Dir = 'C:\J'

Send('^{INS}')
Sleep(33)
$sData = ClipGet()

$nS = StringInStr($sData, "\", 0, -1)
If $nS = 0 Then Exit

$Dir &= "\"& @YEAR &"."& @MON &"."& @MDAY &"_"& StringTrimLeft($sData, $nS)

FileCopy($sData, $dir)
 

vova-n

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