Скрипты командной строки
Для хранения сценариев, которые я использую из командной строки, я создаю каталог Command Line Scripts
в разделе Program Files и добавляю его в переменную среды PATH. Я использую следующий пакетный файл для перечисления и редактирования этих сценариев:
@echo off
setlocal
set UTILPATH=C:\Program Files\System Tools\Command Line Utilities
if not "x%1"=="x" (
start "" "notepad" "%UTILPATH%\%1.bat"
) else (
dir /b "%UTILPATH%" | grep -v com.bat | grep -P "(exe|bat|cmd)" | sed "s/\.\(exe\|bat\|cmd\)//"
echo.
)
(обратите внимание, что фильтрация списка каталогов зависит от некоторых Unix-команд, которые я установил через Cygwin )
Я даю ему имя com.bat (сокращение от команды), затем я могу:
- перечислите сценарии в этом каталоге, набрав
com
в командной строке
- отредактируйте любой скрипт в списке, набрав
com script-name
в командной строке *, аналогично:
- создайте новые сценарии в этом каталоге, введя
com new-script-name
в командной строке *
- и если мне когда-нибудь понадобится редактировать com.bat, я просто наберу
com com
* Поскольку я работаю в Vista, мне приходится использовать командную строку с повышенными привилегиями, так как каталоги под Program Files
защищены.
Для быстрого запуска командной строки с повышенными привилегиями просто нажмите Win key
; тип cmd
; нажмите Ctrl+Shift+Enter
; а затем нажмите Alt+C
, чтобы подтвердить запрос на повышение прав. Шесть нажатий клавиш в командной строке с повышенными правами! ([Через] [4])
Скрипт запуска
Один из сценариев, которые я храню в своем каталоге Command Line Scripts
, - это сценарий, который запускается при входе в Windows (через Task Scheduler
введите Task
в меню «Пуск» Vista). Я использую этот сценарий для настройки нескольких виртуальных дисков с помощью команды subst для каталогов, к которым я часто обращаюсь или хочу получить быстрый доступ к командной строке или для сокращения путей в предупреждениях компилятора, журналах или результатах отладки.
Мой скрипт запуска выглядит примерно так:
@setlocal
@set _MYDOCS_=%USERPROFILE%\Documents
@REM Note: first delete the drives so I can run script again
@REM to fix drives that failed to get mapped
subst /d W:
subst /d T:
subst /d S:
subst /d R:
subst /d N:
subst /d L:
subst /d H:
subst W: "%_MYDOCS_%\Work\SVN Working Copy\Website\trunk\www"
subst T: "%_MYDOCS_%\Work\SVN Working Copy\project 1\trunk"
subst S: "%_MYDOCS_%\Work\SVN Working Copy"
subst R: "%_MYDOCS_%\Work\SVN Working Copy\project 2\branches\12.50"
subst N: "%_MYDOCS_%\Work\SVN Working Copy\project 2\trunk"
subst L: "%_MYDOCS_%\Work\"
subst H: "%_MYDOCS_%\My Projects\Haslers.info\Working Copy"
Обратите внимание, что subst может быть немного темпераментным, и иногда диски не создаются, и мне приходится снова запускать сценарий запуска вручную.