;скомпилируйте скрипт и на EXE перетяните папку с файлами
;подпапки не учитываются
;учитывайте, что скрипт не выводит никаких сообщений об успехе или ошибке переименовавния
;если скрипт не сможет переименовать, к примеру 1-й и последний файл, то он вернет им первоначальные имена
;то есть 1 переименовали в 1tmp
;а 6 в 6tmp не удалось
;тогда бывший 1, теперь 1tmp, переименует назад в 1
;если удалось и 6 переименовать в 6tmp
;тогда переименовываем дальше
;6tmp в 1, а 1tmp в 6 и т.д. с другими файлами
;перебираем список комманд запуска, ища в нем папку, в которой лежат файлы
For $i1 = 1 To $CmdLine[0]
;если это папка, то создаем список файлов лежащих в ней, не папок
If StringInStr(FileGetAttrib($CmdLine[$i1]), 'D') Then
$vList = ''
$hList = FileFindFirstFile($CmdLine[$i1] & '\*.*')
While 1
$sFile = FileFindNextFile($hList)
If @error Then ExitLoop
If Not StringInStr(FileGetAttrib($CmdLine[$i1] & '\' & $sFile), 'D') Then $vList &= $sFile & @CRLF
WEnd
FileClose($hList)
$vList = StringRegExpReplace($vList, '(?imsx)([\v]+\z)', '')
$vList = StringSplit($vList, @CRLF, 1)
;переименовываем файлы беря 1-й файл в списке и последний
;потом 2-й и предпоследний и т.д.
$iBegin = 1
$iEnd = $vList[0]
While ($iBegin <= $iEnd)
If $vList[$iBegin] <> $vList[$iEnd] Then
;эти две переменные для временного именования файла, требуется чтобы не перезаписать существующие файлы
$sBegin = @YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&@MSEC&'.Begin'
$sEnd = @YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&@MSEC&'.End'
FileMove($CmdLine[$i1] & '\' & $vList[$iBegin], $CmdLine[$i1] & '\' & $vList[$iBegin] & $sBegin, 9)
If @error Then ExitLoop
FileMove($CmdLine[$i1] & '\' & $vList[$iEnd], $CmdLine[$i1] & '\' & $vList[$iEnd] & $sEnd, 9)
If @error Then
FileMove($CmdLine[$i1] & '\' & $vList[$iBegin] & $sBegin, $CmdLine[$i1] & '\' & $vList[$iBegin], 9)
ExitLoop
EndIf
FileMove($CmdLine[$i1] & '\' & $vList[$iBegin] & $sBegin, $CmdLine[$i1] & '\' & $vList[$iEnd], 9)
FileMove($CmdLine[$i1] & '\' & $vList[$iEnd] & $sEnd, $CmdLine[$i1] & '\' & $vList[$iBegin], 9)
EndIf
$iBegin += 1
$iEnd -= 1
WEnd
EndIf
Next
MsgBox(0,0,'Срипт окончил работу')