Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование и переименовывание exe в одной папке [bat] (http://forum.oszone.net/showthread.php?t=329233)

Lemonparty 21-08-2017 08:04 2759689

Копирование и переименовывание exe в одной папке [bat]
 
Здравствуйте! Интересует следующая ситуация:
Допустим есть папка C:\papka\ в которой лежит 1 оригинальный файл с расширением .exe, его название test (C:\papka\test.exe) вместе с ним лежат 10 его копий с названиями t01, t02, t03, t04 итд.
Возможно ли используя функции bat произвести следующие действия:
Сначало удалить все копии, оставив только оригинал, затем по новой скопировать test.exe и переименовать файлы как было раньше (t01, t02, t03, t04, итд)

Iska 21-08-2017 08:41 2759694

Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
        if exist "%sSourceFile%" (
                set sDestFileBaseName=%~n1
                set sDestFileExtName=%~x1
               
                set sSourceFolder=%~dp1
               
                pushd "!sSourceFolder!" && (
                        for /l %%i in (1, 1, 10) do (
                                set sNumber=0%%i
                                set sDestFileName=!sDestFileBaseName!!sNumber:~-2!!sDestFileExtName!
                                >nul copy /y "%sSourceFile%" "!sDestFileName!"
                        )
                        popd
                ) || (
                        echo Can't change current folder to [!sSourceFolder!].
                        exit /b 3
                )
        ) else (
                echo Can't find source file [%sSourceFile%].
                exit /b 2
        )
) else (
        echo Usage: %~nx0 ^<Path to source file^>
        exit /b 1
)

endlocal
exit /b 0


Путь к исходному файлу указывается параметром пакетного файла (также можно просто перетащить исходный файл на пакетный файл в Проводнике).

Lemonparty 21-08-2017 12:54 2759743

Спасибо все работает, но если возможно, хотел бы задать один вопрос.
Что я могу добавить чтобы после перезаписи старых файлов, можно было менять название приложений? Изначально имя TEST.exe , но после использования батника хочу чтобы имя оригинала осталось прежним, а имена копий назывались T00, T01, T02, T03, T04 etc

Iska 21-08-2017 13:10 2759754

Цитата:

Цитата Lemonparty
не знаете с чем это может быть связано? »

Нет, не знаю.

Цитата:

Цитата Lemonparty
хочу чтобы имя оригинала осталось прежним, а имена копий назывались T00, T01, T02, T03, T04 etc »

Замените:
Код:

set sDestFileBaseName=%~n1
на:
Код:

set sDestFileBaseName=T

Lemonparty 21-08-2017 13:20 2759757

Моя ошибка, удалил первый вопрос, спасибо огромное все работает отлично.


Время: 07:53.

Время: 07:53.
© OSzone.net 2001-