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

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

Anufriev 02-10-2014 10:10 2409813

копирование одного файла из нескольких
 
Добрый день!

есть элементарные команды copy и move, которые копируют и перекладывают все файлы по маске, вопрос, как сделать, что бы они обработали только один файл с этой маской, а второй не тронули, при следующем запуске батника, обработался бы следующий файл?

Код:

rem если есть файл *EID* операции с файлами не выполнять
dir \\rsbank\ITBObmen\External\MCI\LOAD_EID\*EID*.ed /a-d 2>nul >nul && goto 18
goto 171

:171
copy \\rsbank\ITBObmen\External\MCI\LOAD\*EID*.ed \\rsbank\rs-bank_adm\TxtFile
move \\rsbank\ITBObmen\External\MCI\LOAD\*EID*.ed \\rsbank\ITBObmen\External\MCI\LOAD_EID
goto 18
:18


Iska 02-10-2014 11:39 2409853

Цитата:

Цитата Anufriev
rem если есть файл *EID* операции с файлами не выполнять »

В Вашем коде — как раз «выполнять». Поясните, как это согласуется с:
Цитата:

Цитата Anufriev
обработали только один файл с этой маской »

?

Anufriev 02-10-2014 11:57 2409863

извиняюсь, это я опечатался, поправил

но при таком батнике, в случае, если в конечном каталоге не будет файла то он скопирует все файлы, а мне нужно, что бы по одному это делал:(

Iska 02-10-2014 12:35 2409886

Как-то так:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sDestFolder=\\rsbank\ITBObmen\External\MCI\LOAD_EID
set sSourceFolder=\\rsbank\ITBObmen\External\MCI\LOAD
set sArcFolder=\\rsbank\rs-bank_adm\TxtFile
set sMask=*EID*.ed

if exist "%sDestFolder%\." (
        if exist "%sSourceFolder%\." (
                if exist "%sArcFolder%\." (
                        >nul 2>&1 dir /b /a:-d "%sDestFolder%\%sMask%" || (
                                for /f "usebackq delims=" %%i in (
                                        `2^>nul dir /b /a:-d "%sSourceFolder%\%sMask%"`
                                ) do (
                                        if not defined iTrigger (
                                                set /a iTrigger = 1
                                               
                                                >nul copy "%sSourceFolder%\%%~i" "%sArcFolder%\"
                                                >nul move "%sSourceFolder%\%%~i" "%sDestFolder%\"
                                        )
                                )
                        )
                ) else (
                        echo Can't find archive's folder [%sArcFolder%].
                        exit /b 3
                )
        ) else (
                echo Can't find source folder [%sSourceFolder%].
                exit /b 2
        )
) else (
        echo Can't find destination folder [%sDestFolder%].
        exit /b 1
)

endlocal
exit /b 0


Anufriev 02-10-2014 12:58 2409906

спасибо огромное, батник работает как часики, как бы я жил без Вас, уважаемый Iska:)


Время: 10:31.

Время: 10:31.
© OSzone.net 2001-