вторник, 8 мая 2012 г.

Script: Скриптовая эволюция

Дано - написать скрипт, который кидает определённые файлы из локальной папки в папку на подключенном сетевом диске. Например, веб-проект, в котором мы изменили 2-3 dll. OS Windows.

На каком языке писать скрипт?

ActivePerl под Windows - иногда не принимает переданных параметров
Cygwin - нету
PowerShell - просто так даже Hello World не запустишь. Система будет ругаться, что он... не подписан (маразм? маразм!)

Похоже, технологии ушли слишком далеко. Нам остаётся только старый формат CMD файлов.

copydll.cmd:

@echo off
set FROM=d:\proj1\bin
set TO=W:\stable\proj1\bin
FOR %%A IN (%*) DO IF EXIST "%FROM%\%%A.dll" COPY /Y "%FROM%\%%A.dll" "%TO%\%%A.dll"

Добавляем папку в Path и вызываем

copydll Proj.Module1 Proj.Module2

А этот cmd можно кинуть на панель в Total Commander и просто перетаскивать туда нужный файл:

@echo off
set TO=W:\stable\proj1\bin
FOR %%A IN (%*) DO IF EXIST %%A COPY /Y %%A "%TO%\%%~nxA"

Конечно, можно просто перетащить на панель Total Commander'а саму папку, но тогда придётся дважды щёлкать мышкой (ОК в диалоге копирования и потом Replace All)

Да, ещё. Если написать в CMD-шке PAUSE, она в этом месте попросит Press any key to continue....

Комментариев нет:

Отправить комментарий