*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***
Показаны сообщения с ярлыком скрипты. Показать все сообщения
Показаны сообщения с ярлыком скрипты. Показать все сообщения

понедельник, 6 июля 2009 г.

Скрипты для архивации проектов под Windows

Архивировать папку с проектом очень удобно и полезно. Для себя я давно выбрал следующий формат имен архивов: имя проекта + дата и время с точностью до секунды, например:
easy-coding-2009.07.06-10.27.12.rar
Долгое время я использовал вот такой скрипт backup.cmd:
rem Берем имя родительского каталога без полного пути.
for %%I in (.) do set CWD=%%~nI
rem Архивируем.
winrar a -v -r -s -ag-YYYY.MM.DD-HH.MM.SS -x*.rar -x*.7z %CWD%
Просто бросаешь какой скрипт в каталог любого проекта (имя каталога должно быть сообразно проекту) и все, можно архивировать. Скрипт берет имя каталога как базу и добавляет к ней дату и время с помощью удобной опции архиватора RAR.

Последнее время я все чаще использую 7z как основной архиватор, но у него я не нашел схожего ключа на добавление в имя архива даты и времени. Пришлось слегка извратиться.

В этоге родился скрипт backup-7z.cmd:
@echo off
setlocal
set line=%DATE%
rem Проходимся по строке вида DD/MM/YYYY и
rem превращаем ее в YYYY.MM.DD.
:parse_date
for /F "delims=/ tokens=1,*" %%a in ("%line%") do (
set line=%%b
set now=%%a.%now%
)
if "%line%" neq "" goto parse_date
rem Отрезаем хвостовую точку от даты.
set now=%now:~0,10%
rem Добавляем время. Оно уже в формате HH:MM:SS.ms. Отрезаем доли секунды.
set now=%now%-%TIME:~0,8%
rem Заменяем двоеточие на точку
set now=%now::=.%
rem Берем имя родительского каталога без полного пути.
for %%I in (.) do set CWD=%%~nI
rem Архивируем.
7z a -mx9 -r -x!*.rar -x!*.7z %CWD%-%now%.7z
endlocal
Это скрипт делает все как и раньше, но только для 7z.

Конечно, под UNIX'ом есть море путей сделать подобное, да и в Windows можно Cygwin использовать, но я всегда сначала пытаюсь сделать native решение, если это возможно.

понедельник, 16 февраля 2009 г.

Редактор переменных окружения для Windows

Поднимите руки те, кому удобно пользоваться стандартным способом редактирования переменных окужения в Windows XP? Особенно когда, например, редактируешь длиннющую строку PATH в поле ввода длиной десять сантиметров. Я руку не поднимал, так как мне не нравится, радикально не нравится.

Есть замечательная программа Rapid Environment Editor (RapidEE). Она позволяет очень удобно редактировать переменные окружения Windows в виде двух панелей: слева системные переменные, справа пользователькие. Переменная PATH автоматически представляется в виде списка путей. И даже то, что всю картину переменных видно как на ладони, и то, что программа понимает вставку из буфера обмена — все это меркнет перед гениальной функцией подсветки "мертвых" путей в переменной PATH. "Мертвым" путь может быть в основном по двум причинам: либо путь остался от программы, которая давно снесена, либо путь просто задан неверно, а вы битый час пытаетесь понять, почему что-то там не запускается. RapidEE моментально решает подобные проблемы.

Я не сторонник графического интерфейса, и чего греха таить, люблю командную строку. В свое время я написал небольшой скрипт, который в Windows распечатывает пути из переменной PATH по отдельности:

Файл splitpath.cmd:
@echo off 
set line=%path%
setlocal
:parse_line
for /F "delims=; tokens=1,*" %%a in ("%line%") do (
echo %%a
set line=%%b
)
if "%line%" NEQ "" goto parse_line
endlocal
Примерный результат его работы выглядит так:
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
c:\Python25
C:\Program Files\CodeGear\RAD Studio\5.0\bin
C:\Program Files\Java\jdk1.6.0_04
C:\Program Files\Java\jdk1.6.0_04\jre\bin
C:\Program Files\PC Connectivity Solution
c:\oracle\9.2.0.1\bin
C:\Program Files\Oracle\jre\1.3.1\bin
C:\Program Files\Oracle\jre\1.1.8\bin
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
C:\PROGRA~1\Borland\CBUILD~1\Bin
Но после перехода на RapidEE нужда в скрипте отпала совсем.

Вывод: RapidEE очень удобная программа для редактирования переменных окружения в Windows. Программа бесплатная. Может работать в portable режиме и не требовать установки.

Скриншот (если на него кликнуть, то будет картинка побольше):


Скриншот Rapid Environment Editor