Компьютерный форум 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=230730)

dark-------13 19-03-2012 13:40 1882385

Перемещение файлов по размеру
 
Здравствуйте,

Есть скрипт - который переносит файлы, если размер файлов больше либо равен указанному в скрипте значению (GEQ 40000), но делает это не правильно (захватывает файлы меньше указанного значения), как поправить скрипт - чтобы только файлы больше указанного в скрипте значения переносились в указанный каталог ?


@ECHO OFF
FOR %%i IN (*.*) do CALL :MVFILE "%%i"
GOTO :EOF

:MVFILE
SET SIZEFILE=%~z1
IF %SIZEFILE% GEQ 40000 (
move "c:\test\*.txt" "c:\test\2\"
ECHO %1, size=%SIZEFILE%
) ELSE (
move "c:\test\*.txt" "c:\test\3\"
ECHO %1, size=%SIZEFILE%
)
GOTO :EOF

gora 19-03-2012 14:12 1882398

dark-------13, попробуйте так:
Код:

@ECHO OFF
FOR %%i IN (*.*) do CALL :MVFILE "%%i"
GOTO :EOF

:MVFILE
If "%~z1"=="" GOTO :EOF
IF %~z1 GEQ 40000 (
        move %1 "c:\test\2\"
        ECHO %1, size=%~z1
) ELSE (
        move %1 "c:\test\3\"
        ECHO %1, size=%~z1
)
GOTO :EOF


dark-------13 19-03-2012 14:16 1882405

Почему то переноситься сам батник- в папку 3

gora 19-03-2012 14:19 1882406

Цитата:

Цитата dark-------13
Почему то переноситься сам батник- в папку 3 »

Наверно потому, что Вы так задали условия. Размер его < 40000 и лежит он у Вас в папке со всеми файлами.

Если у Вас должны переносится только файлы .txt, то поправьте строку:
Код:

FOR %%i IN (*.txt) do CALL :MVFILE "%%i"

dark-------13 19-03-2012 14:31 1882417

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

Убрал из кода строки все заработало как нужно - спасибо "gora" !

) ELSE (
move %1 "c:\test\3\"
ECHO %1, size=%~z1
)


Время: 00:55.

Время: 00:55.
© OSzone.net 2001-