Skrypty wiersza poleceń
Do przechowywania skryptów, których używam z wiersza poleceń, tworzę plik Command Line Scripts
katalog w Program Files i dodaję go do zmiennej środowiskowej PATH. Używam następującego pliku wsadowego do wyświetlania i edytowania tych skryptów:
@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.
)
(zwróć uwagę, że filtrowanie listy katalogów zależy od niektórych poleceń unix, które zainstalowałem za pośrednictwem Cygwin )
Nadaję mu nazwę com.bat (skrót od command), a następnie mogę:
- wyświetlić listę skryptów w tym katalogu, wpisując
com
w wierszu polecenia
- edytuj dowolny skrypt na liście, wpisując
com script-name
w wierszu polecenia *, podobnie:
- utwórz nowe skrypty w tym katalogu, wpisując
com new-script-name
w wierszu poleceń *
- a jeśli kiedykolwiek będę musiał edytować com.bat, po prostu piszę
com com
* Ponieważ używam Vista, muszę używać wiersza poleceń z podwyższonym poziomem uprawnień, ponieważ katalogi w ramach Program Files
są chronione. Aby szybko uruchomić wiersz polecenia z podwyższonym poziomem uprawnień, po prostu naciśnij klawisz Win key
; typ cmd
; naciśnijCtrl+Shift+Enter
; a następnie naciśnij, Alt+C
aby potwierdzić monit o podniesienie. Sześć naciśnięć klawiszy do wiersza poleceń z podwyższonym poziomem uprawnień! ([przez] [4])
Skrypt startowy
Jednym ze skryptów, które przechowuję w swoim Command Line Scripts
katalogu, jest skrypt, który jest uruchamiany, gdy loguję się do systemu Windows (za pomocą Task Scheduler
, wpisz Task
w menu startowym Vista). Używam tego skryptu do skonfigurowania kilku dysków wirtualnych za pomocą polecenia subst do katalogów, do których często mam dostęp lub chcę uzyskać szybki dostęp w wierszu polecenia lub dla skracania nazw ścieżek w ostrzeżeniach kompilatora, dziennikach lub danych wyjściowych debugowania.
Mój skrypt startowy wygląda mniej więcej tak:
@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"
Zauważ, że subst może być trochę temperamentny i czasami dyski nie są tworzone i muszę ponownie ręcznie uruchomić skrypt startowy.