|
Компьютерный форум 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:
«E:\Песочница\0425» на путь к Вашей папке, сохраните в файл с расширением «.cmd» в кодировке OEM/866, запустите командную строку, исполните в ней данный пакетный файл, сделайте скриншот данного окна командной строки («Alt-PrintScreen»), выложите скриншот сюда. |
|
Отправлено: 07:14, 26-01-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:17, 26-01-2015 | #12 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Похоже эта проблема как-то связана с Internet Explorer
|
Отправлено: 09:41, 26-01-2015 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Prog-Man:
Цитата Prog-Man:
Цитата Iska:
|
|||
Отправлено: 06:27, 01-02-2015 | #14 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 14:24, 01-02-2015 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Prog-Man, ну, вот — совсем другое дело. Итак, как мы видим, скрипт-болванка на самом деле работает. Только обязательно переименуйте его из «Start.cmd» в какое-либо иное имя, отличное от имён внутренних команд, таких как start, dir и т.п. (а по-хорошему — отличное и от внешних, поскольку некоторые не утруждают себя в пакетных файлах добавлением расширений для исполняемых файлов; Вы добавляете — на это я обратил внимание).
Теперь наша задача разобраться со вставленным Вами кодом. jpegtran.exe
Я понимаю, что Вы явно руководствовались этим: How to Automate PNG & JPG Image Optimization in Windows - Station Four Blog кодом, но в реальности нет никакой нужды использовать промежуточные файлы. Убрал.
mp3packer.exe
Нет никакой нужды в принудительном задании числа threads параметром «--workers», поскольку явно сказано:
Цитата:
Писать «поверх» и без следов в виде резервного файла приложение не умеет (очевидно, сделано специально). Оставил работу со временной папкой, только теперь туда помещаются (и впоследствии удаляются) резервные копии файлов, а не оптимизированные файлы. gifsicle.exe
Приложению было бы неплохо научиться предварительно проверять результат своей оптимизации, дабы после таковой не получались файлы большего размера, нежели оригинальные.
pngout.exe
Так и не понял, зачем Вы проделываете двойную оптимизацию над bmp-файлами — сначала как над bmp, затем повторно — как над png. Убрал.
В общем, примерно так: Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 if not defined sSourceFolder ( echo Usage: %~nx0 ^<Source folder^> exit /b 2 ) call :GetTemporaryName 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!]. pushd "%sSourceFolder%" if exist "%USERPROFILE%\Desktop\Util\." ( PATH %USERPROFILE%\Desktop\Util;%PATH% md "%TemporaryName%" rem Инициализация Секундомера rem http://forum.oszone.net/post-2275768-8.html "timemer.exe" my_backup start rem Оптимизация JPG rem jpegtran http://jpegclub.org/jpegtran/ for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.jpg" "*.jpeg"`) do "jpegtran.exe" -optimize -progressive -copy none "%%~i" "%%~i" rem Оптимизация MP3 rem mp3packer 2.04 for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.mp3"`) do "mp3packer64.exe" -f -z -u "%%~i" "%TemporaryName%\%%~i" 2>nul del /f /q "%TemporaryName%\*.mp3" rem Оптимизация GIF rem gifsicle 1.87 9.Dec.2014 http://www.lcdf.org/gifsicle/ for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.gif"`) do "gifsicle.exe" --batch --optimize=3 "%%~i" rem Конвертирование BMP в PNG. Оптимизация PNG rem PNGOUT http://advsys.net/ken/utils.htm for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.bmp" "*.png"`) do "pngout.exe" "%%~i" for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.png"`) do >"%TemporaryName%\%%~i" <"%%~i" "defluff.exe" copy /y "%TemporaryName%\*.png" "*.png" 2>nul del /f /q "%TemporaryName%\*.png" "DeflOpt.exe" "*.png" rem Получаем время работы программы "timemer.exe" 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!]. rd /s /q "%TemporaryName%" ) else ( echo Can't find folder [%USERPROFILE%\Desktop\Util]. exit /b 2 ) popd ) else ( echo Can't find source folder [%sSourceFolder%]. exit /b 1 ) endlocal exit /b 0 rem ========================================================================== rem ========================================================================== rem Функция GetTemporaryName() rem rem Серый форум / CMD/BAT: генерация пути для временного файла или папки rem (http://forum.script-coding.com/viewtopic.php?id=6259) rem ========================================================================== :GetTemporaryName setlocal enableextensions enabledelayedexpansion :NextName set sTempName=%temp%\temp%random%.tmp if exist "%sTempName%" goto :NextName set sProcName=%~0 endlocal & set %sProcName:~4%=%sTempName% exit /b 0 rem ========================================================================== Не стал делать проверок на существование каждой из утилит. P.S. Поиски живой «DeflOpt.exe» доставили много незабываемой радости и чистого человеческого счастья ![]() |
|
Отправлено: 06:03, 02-02-2015 | #16 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать При перетаскивание папки на скрипт все так же закрывается, при запуске через командную строку пишет
непредвиденное появление \common |
Отправлено: 16:10, 02-02-2015 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Prog-Man:
Цитата Prog-Man:
|
||
Отправлено: 16:42, 02-02-2015 | #18 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:13, 02-02-2015 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:27, 02-02-2015 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Задать время работы скрипта с 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 |
|