Войти

Показать полную графическую версию : [решено] Если файл больше 300 мб то удалить его


jannaly
16-07-2012, 22:13
Microsoft(R) Windows(R) Server 2003, Enterprise

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

спасибо!

Iska
16-07-2012, 22:52
Попробуйте так:
@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
Iska, поясните set /a "iLimit = 300 * 1 << 20"

Iska
17-07-2012, 07:26
set /?
Microsoft Windows XP - Set (http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/set.mspx?mfr=true)

@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
мзвините а куда пропмсывать файл чтобы удалить или нет ?

@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
имя/путь к потребному файлу указывайте аргументом пакетного файла. »
Например:
"c:\Мои проекты\Sample.cmd" "c:\Temp\Test.iso"
Можете просто перетащить потребный для проверки файл на пакетный файл.

jannaly
17-07-2012, 15:12
а куда фал прописывать?

@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
jannaly, что Вам непонятно в моём предыдущем сообщении?




© OSzone.net 2001-2012