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

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

jannaly 16-07-2012 22:13 1953104

Если файл больше 300 мб то удалить его
 
Microsoft(R) Windows(R) Server 2003, Enterprise

помогите сделать батчь команды Если файл больше 300 мб то удалить его

спасибо!

Iska 16-07-2012 22:52 1953127

Попробуйте так:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sFile=%~1

if defined sFile (
        if exist "%sFile%" (
                set /a "iSize  = %~z1"
                set /a "iLimit = 300 * 1 << 20"
               
                if !iSize! gtr !iLimit! del /p /f "%sFile%"
        ) else (
                echo Source file [%sFile%] not found
        )
) else (
        echo Usage: %~nx0 ^<file for test to delete^>
)

endlocal
exit /b 0


имя/путь к потребному файлу указывайте аргументом пакетного файла.

sov44 16-07-2012 23:00 1953129

Iska, поясните
Код:

set /a "iLimit = 300 * 1 << 20"

Iska 17-07-2012 07:26 1953268

Код:

set /?
Microsoft Windows XP - Set

↧ Демонстрация ↧
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

echo 1 Kb = 2^^10 степени
echo.
echo Можно получить умножением десяти двоек [2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2]:
set /a "iMultyply = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2"
echo [%iMultyply%]
echo.
echo Или поразрядным сдвигом на десять разрядов [1 ^<^< 10]:
set /a "iShift    = 1 << 10"
echo [%iShift%]
echo.
echo 1 Mb = 2^^20 степени:
set /a "iShift    = 1 << 20"
echo [%iShift%]
echo.
echo 300 Mb = 2^^20 степени * 300:
set /a "iLimit = 300 * 1 << 20"
echo [%iLimit%]

endlocal
exit /b 0


jannaly 17-07-2012 14:36 1953519

мзвините а куда пропмсывать файл чтобы удалить или нет ?

@echo off
setlocal enableextensions enabledelayedexpansion

set sFile=%~1

if defined sFile (
if exist "%sFile%" (
set /a "iSize = %~z1"
set /a "iLimit = 300 * 1 << 20"

if !iSize! gtr !iLimit! del /p /f "%sFile%"
) else (
echo Source file [%sFile%] not found
)
) else (
echo Usage: %~nx0 ^<file for test to delete^>
)

endlocal
exit /b 0

Iska 17-07-2012 15:07 1953543

Цитата:

Цитата Iska
имя/путь к потребному файлу указывайте аргументом пакетного файла. »

Например:
Код:

"c:\Мои проекты\Sample.cmd" "c:\Temp\Test.iso"
Можете просто перетащить потребный для проверки файл на пакетный файл.

jannaly 17-07-2012 15:12 1953547

а куда фал прописывать?

@echo off
setlocal enableextensions enabledelayedexpansion

set sFile=%~1

if defined sFile (
if exist "%sFile%" (
set /a "iSize = %~z1"
set /a "iLimit = 300 * 1 << 20"

if !iSize! gtr !iLimit! del /p /f "%sFile%"
) else (
echo Source file [%sFile%] not found
)
) else (
echo Usage: %~nx0 ^<file for test to delete^>
)

endlocal
exit /b 0

Посибки

Iska 17-07-2012 15:29 1953565

jannaly, что Вам непонятно в моём предыдущем сообщении?


Время: 05:46.

Время: 05:46.
© OSzone.net 2001-