Инструмент для командной строки "закладки" в windows?

Я ищу инструмент, который позволяет мне указать некоторые папки как «закладки», а затем получить к ним доступ из командной строки (в Windows XP) через ключевое слово. Что-то вроде:

C:\> go home
D:\profiles\user\home\> go svn-project1
D:\projects\project1\svn\branch\src\>

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


Спасибо за предложение Powershell, но мне не разрешено устанавливать его на моем компьютере на работе, поэтому это должно быть «классическое» решение cmd.exe.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
0
5 365
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

С помощью PowerShell вы можете добавить папки как переменные в файл profile.ps1, например:

$vids = "C:\Users\mabster\Videos"

Затем, как и в Unix, вы можете просто ссылаться на переменные в своих командах:

cd $vids

Наличие списка назначений переменных в одном файле ps1, вероятно, проще, чем ведение отдельных командных файлов.

Без Powershell это можно сделать так:

C:\>set DOOMED=c:\windows
C:\>cd %DOOMED%
C:\WINDOWS>

Переменные среды?

set home=D:\profiles\user\home
set svn-project1=D:\projects\project1\svn\branch\src

cd %home%

В Unix я использую это вместе с popd / pushd / cd - все время.

Ответ принят как подходящий

То, что вы ищете, называется DOSKEY

Вы можете использовать команду doskey для создания макросов в интерпретаторе команд. Например:

doskey mcd=mkdir "$*"$Tpushd "$*"

создает новую команду «mcd», которая создает новый каталог, а затем переходит в этот каталог (в этом случае я предпочитаю «pushd» вместо «cd», потому что это позволяет мне позже использовать «popd», чтобы вернуться туда, где я был раньше)

$ * Будет заменен на оставшуюся часть командной строки после макроса, а $ T используется для разделения двух разных команд, которые я хочу оценить. Если я напечатал:

mcd foo/bar 

в командной строке это будет эквивалентно:

mkdir "foo/bar"&pushd "foo/bar"

Следующим шагом является создание файла, содержащего набор макросов, который затем можно импортировать с помощью переключателя / macrofile. У меня есть файл (c: \ tools \ doskey.macros), в котором определены команды, которые я регулярно использую. Каждый макрос следует указывать в строке с тем же синтаксисом, что и выше.

Но вы не хотите, чтобы вам приходилось вручную импортировать макросы каждый раз, когда вы запускаете новый интерпретатор команд, чтобы это происходило автоматически, просто откройте раздел реестра.

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun и установите значение doskey / macrofile "c: \ tools \ doskey.macro". Это гарантирует, что ваши макросы будут автоматически предопределены каждый раз, когда вы запускаете новый интерпретатор.

Дополнительные мысли: - Если вы хотите делать другие вещи в AutoRun (например, устанавливать параметры среды), вы можете ограничить команды амперсандом. Мой выглядит так: set root = c: \ SomeDir & doskey / macrofile "c: \ tools \ doskey.macros" - Если вы предпочитаете, чтобы настройки автозапуска были установлены для каждого пользователя, вы можете использовать узел HKCU вместо HKLM. - Вы также можете использовать doskey для управления такими вещами, как размер истории команд. - Мне нравится заканчивать все свои навигационные макросы символом \ $ *, чтобы можно было связать все вместе - Будьте осторожны при добавлении кавычек в свои макросы, если вы хотите иметь возможность обрабатывать пути с пробелами в них.

К вашему сведению, в Windows 7 (я только что) команда doskey в настоящее время называется «doskey /macrofile="c:\tools\doskey.macros». Пришлось это посмотреть. Также, если в вашем реестре нет автозапуска (у меня нет), обратите внимание, что это строковое значение в Command Processor, а не его собственный ключ. \ Скинул меня (или тоже изменилось). В противном случае большое спасибо!

joedragons 04.02.2015 01:40

Спасибо, это именно то, что я искал !! Я заметил, что в значение AutoRun вы также можете вставить полный путь к командному файлу, что может быть более гибким.

andynaz 31.07.2015 11:21

Просто попробуйте это с помощью пакетного файла ... (сохранить как имя файла "go.bat")

@echo off
set BookMarkFolder=c:\data\cline\bookmarks\
if exist %BookMarkFolder%%1.lnk start %BookMarkFolder%%1.lnk
if exist %BookMarkFolder%%1.bat start %BookMarkFolder%%1.bat
if exist %BookMarkFolder%%1.vbs start %BookMarkFolder%%1.vbs
if exist %BookMarkFolder%%1.URL start %BookMarkFolder%%1.URL

Любые ярлыки, командные файлы, сценарии VBS или ярлыки Интернета, которые вы помещаете в папку закладок (в этом случае "c: \ data \ cline \ bookmarks \" можно открыть / получить доступ, набрав "go имя закладки"

например У меня есть закладка под названием "stack.url". Набрав команду go stack, я попадаю прямо на эту страницу.

Вы также можете исследовать Запуск

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

cd \go\svn-project-1
cd \go\my-douments 

Символические ссылки могут быть созданы на NTFS-диске с помощью инструмента Соединение.

Crono wrote:

Are Environment variables defined via "set" not meant for the current session only? Can I persist them?

Они устанавливаются для текущего процесса и по умолчанию наследуются любым процессом, который он создает. Они не сохраняются в реестре. Их объем может быть ограничен в сценариях cmd с помощью "setlocal" (и "endlocal").

Я искал именно эту функциональность для простых случаев. Не удалось найти решение, поэтому я сделал его сам:

@ECHO OFF
REM Source found on https://github.com/DieterDePaepe/windows-scripts
REM Please share any improvements made!

REM Folder where all links will end up
set WARP_REPO=%USERPROFILE%\.warp

IF [%1]==[/?] GOTO :help
IF [%1]==[--help] GOTO :help
IF [%1]==[/create] GOTO :create
IF [%1]==[/remove] GOTO :remove
IF [%1]==[/list] GOTO :list

set /p WARP_DIR=<%WARP_REPO%\%1
cd %WARP_DIR%
GOTO :end

:create
IF [%2]==[] (
  ECHO Missing name for bookmark
  GOTO :EOF
)

if not exist %WARP_REPO%\NUL mkdir %WARP_REPO%
ECHO %cd% > %WARP_REPO%\%2
ECHO Created bookmark "%2"
GOTO :end

:list
dir %WARP_REPO% /B
GOTO :end

:remove
IF [%2]==[] (
  ECHO Missing name for bookmark
  GOTO :EOF
)
if not exist %WARP_REPO%\%2 (
  ECHO Bookmark does not exist: %2
  GOTO :EOF
)
del %WARP_REPO%\%2
GOTO :end

:help
ECHO Create or navigate to folder bookmarks.
ECHO.
ECHO   warp /?          Display this help
ECHO   warp [bookmark]      Navigate to existing bookmark
ECHO   warp /remove [bookmark]  Remove an existing bookmark
ECHO   warp /create [bookmark]  Navigate to existing bookmark
ECHO   warp /list           List existing bookmarks
ECHO.

:end

Вы можете перечислять, создавать и удалять закладки. Закладки хранятся в текстовых файлах в папке в вашем пользовательском каталоге.

использование (скопировано из текущей версии):

Закладка папки для использования в терминале.

c:\Temp>warp /create temp     # Create a new bookmark
Created bookmark "temp"
c:\Temp>cd c:\Users\Public    # Go somewhere else
c:\Users\Public>warp temp     # Go to the stored bookmark
c:\Temp>

Каждая деформация использует команду pushd, поэтому вы можете отслеживать свои шаги с помощью popd.

c:\Users\Public>warp temp
c:\Temp>popd
c:\Users\Public>

Откройте папку закладки в проводнике с помощью warp /window <bookmark>.

Перечислите все доступные варианты, используя warp /?.

Отличное решение, я не знаю, почему у него нет голосов - оно намного элегантнее и проще в использовании, чем что-либо еще опубликованное.

Kevin Lam 10.05.2016 21:30

Другие вопросы по теме