|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - требуется найти разницу в размере папки до работы скрипта и после |
|
|
CMD/BAT - требуется найти разницу в размере папки до работы скрипта и после
|
Новый участник Сообщения: 14 |
Здравствуйте! Собственно все написано в теме.
Нашел две программы выводящие размер папки, но не знаю как получить эти данные в виде переменной. Disk Usage https://technet.microsoft.com/en-us/.../bb896651.aspx Diruse https://technet.microsoft.com/en-us/...99(WS.10).aspx |
|
Отправлено: 05:22, 24-01-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Prog-Man, лучше ни то, ни другое. Арифметика пакетных файлов целочисленна, 32-разрядна (один бит отнесён под знак) и посему крайне ограничена диапазоном от -2,147,483,648 до 2,147,483,647.
Вам под какие цели? Можно, например, использовать mshta и VBScript/JScript внутри, наподобие: @echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0425
if exist "%sSourceFolder%\." (
for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size)}};catch (e){};close();"`
) do set sPrevFolderSize=%%i
echo Previously size [!sPrevFolderSize!].
rem Здесь начинается Ваш код
echo bla-bla-bla
echo bla-bla-bla
echo bla-bla-bla
rem Здесь заканчивается Ваш код
for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size - !sPrevFolderSize!)}};catch (e){};close();"`
) do set sDifference=%%i
echo Difference after working is [!sDifference!].
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
|
Отправлено: 07:26, 24-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Вот мой скрипт(сильно не пинайте это мой первый скрипт).
@echo off cd %1 :: Инициализация Секундомера :: http://forum.oszone.net/post-2275768-8.html %USERPROFILE%\Desktop\Util\timemer my_backup start :: Оптимизация JPG :: jpegtran http://jpegclub.org/jpegtran/ if not exist %1\*.jpg if not exist %1\*.jpeg goto mp3 pause md "%~1\OptimizedJPEGS" for %%i in (*.jpg *.jpeg) do %USERPROFILE%\Desktop\Util\jpegtran.exe -optimize -progressive -copy none "%%i" "%~1\OptimizedJPEGS\%%i" move /Y "%~1\OptimizedJPEGS\*.*" "%~1" rd "%~1\OptimizedJPEGS" :mp3 :: Оптимизация MP3 :: mp3packer 2.04 if not exist %1\*.mp3 goto gif md "%~1\OptimizedMP3" for %%i in (*.mp3) do %USERPROFILE%\Desktop\Util\mp3packer64.exe -f -z --workers 3 "%%i" "%~1\OptimizedMP3\%%i" move /Y "%~1\OptimizedMP3\*.*" "%~1" rd "%~1\OptimizedMP3" :gif :: Оптимизация GIF :: gifsicle 1.87 9.Dec.2014 http://www.lcdf.org/gifsicle/ if not exist %1\*.gif goto bmp for %%i in (*.gif) do %USERPROFILE%\Desktop\Util\gifsicle.exe -b -O3 "%%i" :bmp :: Конвертирование BMP в PNG if not exist %1\*.bmp goto png md "%~1\OptimizedBMP_PNG" for %%i in (*.BMP) do "%USERPROFILE%\Desktop\Util\pngout.exe" "%%i" "%~1\OptimizedBMP_PNG\%%i" move /Y "%~1\OptimizedBMP_PNG\*.*" "%~1" rd "%~1\OptimizedBMP_PNG" :png :: Оптимизация PNG :: PNGOUT http://advsys.net/ken/utils.htm if not exist %1\*.png goto fin for %%i in (*.png) do "%USERPROFILE%\Desktop\Util\pngout.exe" "%%i" move /Y "%~1\OptimizedBMP_PNG\*.*" "%~1" rd "%~1\OptimizedBMP_PNG" md "%~1\defluff" for %%i in (*.png) do %USERPROFILE%\Desktop\Util\defluff.exe <"%%i" > "%~1\defluff\%%i" for %%i in (*.png) do "%USERPROFILE%\Desktop\Util\DeflOpt.exe" "%~1\defluff\%%i" move /Y "%~1\defluff\*.*" "%~1" rd "%~1\defluff" :fin :: Получаем время работы программы %USERPROFILE%\Desktop\Util\timemer my_backup view Pause |
Последний раз редактировалось Prog-Man, 29-01-2015 в 14:57. Отправлено: 08:47, 24-01-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:17, 24-01-2015 | #4 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать ::@echo off cd %1 setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 if not defined sSourceFolder ( echo Usage: %~nx0 ^<Source folder^> exit /b 2 ) :: Где то после этого момента вылетает if exist "%sSourceFolder%\." ( for /f "usebackq delims=" %%i in ( `@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size)}};catch (e){};close();"` ) do set sPrevFolderSize=%%i echo Previously size [!sPrevFolderSize!]. Цитата Iska:
|
||
Отправлено: 09:43, 24-01-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вместо «cd %1» должно быть «cd /d "%sSourceFolder%"». И не в начале пакетного файла, а в том месте, где зелёным по голубому написано «Здесь начинается Ваш код»/«Здесь заканчивается Ваш код».
Цитата Prog-Man:
Цитата Prog-Man:
|
||
Отправлено: 10:09, 24-01-2015 | #6 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 10:28, 24-01-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ух. Покажите получившийся у Вас код.
|
Отправлено: 10:55, 24-01-2015 | #8 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 if not defined sSourceFolder ( echo Usage: %~nx0 ^<Source folder^> exit /b 2 ) if exist "%sSourceFolder%\." ( for /f "usebackq delims=" %%i in ( `@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size)}};catch (e){};close();"` ) do set sPrevFolderSize=%%i echo Previously size [!sPrevFolderSize!]. cd /d "%sSourceFolder%" :: Инициализация Секундомера :: http://forum.oszone.net/post-2275768-8.html %USERPROFILE%\Desktop\Util\timemer my_backup start :: Оптимизация JPG :: jpegtran http://jpegclub.org/jpegtran/ if not exist %sSourceFolder%\*.jpg if not exist %sSourceFolder%\*.jpeg goto mp3 pause md "%sSourceFolder%\OptimizedJPEGS" for %%i in (*.jpg *.jpeg) do %USERPROFILE%\Desktop\Util\jpegtran.exe -optimize -progressive -copy none "%%i" "%sSourceFolder%\OptimizedJPEGS\%%i" move /Y "%sSourceFolder%\OptimizedJPEGS\*.*" "%sSourceFolder%" rd "%sSourceFolder%\OptimizedJPEGS" :mp3 :: Оптимизация MP3 :: mp3packer 2.04 if not exist %sSourceFolder%\*.mp3 goto gif md "%sSourceFolder%\OptimizedMP3" for %%i in (*.mp3) do %USERPROFILE%\Desktop\Util\mp3packer64.exe -f -z --workers 3 "%%i" "%sSourceFolder%\OptimizedMP3\%%i" move /Y "%sSourceFolder%\OptimizedMP3\*.*" "%sSourceFolder%" rd "%sSourceFolder%\OptimizedMP3" :gif :: Оптимизация GIF :: gifsicle 1.87 9.Dec.2014 http://www.lcdf.org/gifsicle/ if not exist %sSourceFolder%\*.gif goto bmp for %%i in (*.gif) do %USERPROFILE%\Desktop\Util\gifsicle.exe -b -O3 "%%i" :bmp :: Конвертирование BMP в PNG if not exist %sSourceFolder%\*.bmp goto png md "%sSourceFolder%\OptimizedBMP_PNG" for %%i in (*.BMP) do "%USERPROFILE%\Desktop\Util\pngout.exe" "%%i" "%sSourceFolder%\OptimizedBMP_PNG\%%i" move /Y "%sSourceFolder%\OptimizedBMP_PNG\*.*" "%sSourceFolder%" rd "%sSourceFolder%\OptimizedBMP_PNG" :png :: Оптимизация PNG :: PNGOUT http://advsys.net/ken/utils.htm if not exist %sSourceFolder%\*.png goto fin for %%i in (*.png) do "%USERPROFILE%\Desktop\Util\pngout.exe" "%%i" move /Y "%sSourceFolder%\OptimizedBMP_PNG\*.*" "%sSourceFolder%" rd "%sSourceFolder%\OptimizedBMP_PNG" md "%sSourceFolder%\defluff" for %%i in (*.png) do %USERPROFILE%\Desktop\Util\defluff.exe <"%%i" > "%sSourceFolder%\defluff\%%i" move /Y "%sSourceFolder%\defluff\*.*" "%sSourceFolder%" rd "%sSourceFolder%\defluff" for %%i in (*.png) do "%USERPROFILE%\Desktop\Util\DeflOpt.exe" "%%i" :fin :: Получаем время работы программы %USERPROFILE%\Desktop\Util\timemer my_backup view for /f "usebackq delims=" %%i in ( `@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size - !sPrevFolderSize!)}};catch (e){};close();"` ) do set sDifference=%%i echo Difference after working is [!sDifference!]. ) else ( echo Can't find source folder [%sSourceFolder%]. exit /b 1 ) endlocal exit /b 0 |
Отправлено: 10:58, 24-01-2015 | #9 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=E:\Песочница\0425 if exist "%sSourceFolder%\." ( for /f "usebackq delims=" %%i in ( `@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size)}};catch (e){};close();"` ) do set sPrevFolderSize=%%i echo Previously size [!sPrevFolderSize!]. rem Здесь начинается Ваш код echo bla-bla-bla echo bla-bla-bla echo bla-bla-bla rem Здесь заканчивается Ваш код for /f "usebackq delims=" %%i in ( `@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size - !sPrevFolderSize!)}};catch (e){};close();"` ) do set sDifference=%%i echo Difference after working is [!sDifference!]. ) else ( echo Can't find source folder [%sSourceFolder%]. exit /b 1 ) endlocal exit /b 0 |
Отправлено: 05:52, 25-01-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Задать время работы скрипта с 15:00 до 2:00 | HFShak | AutoIt | 1 | 28-03-2014 16:20 | |
Приостановка работы скрипта до нажатия кнопки в программе | Pependos | AutoIt | 0 | 01-10-2010 02:52 | |
Разное - После апгрейда с XP до Vista оказались две папки Documents - какой пользоваться | kefi | Microsoft Windows Vista | 1 | 16-02-2010 13:07 | |
[решено] Требуется описание скрипта проверки подключения к сети | Optimus | AutoIt | 5 | 03-12-2009 00:28 | |
Требуется настроить выполнение sh скрипта на unix через определеный промежуток времен | backgam | Программирование в *nix | 8 | 05-05-2009 18:15 |
|