2010-08-13 11 views
5

me gustaría ser capaz de asignar un alias a un comando de DOS para utilizar en conjunción con el comando de runaalias de comando de DOS para runas

específicamente Estoy cansado de recibir la ruta completa de ofertas ("C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"), y yo quiere iniciar alias como MS ha hecho por ssms.

Alguien sabe cómo hacer esto? Sé que puedo lograr esto con un archivo por lotes, pero realmente preferiría no hacerlo.

runas /user:user /netonly bids 

vs

runas /user:user /netonly "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" 
+0

¿Ha utilizado 'doskey'? – Gabe

+0

Hice referencia a este documento: http://technet.microsoft.com/en-us/library/bb490894.aspx y parece que podría funcionar. Si puede proporcionar una respuesta a continuación (en lugar de un comentario), que vincula a cierta documentación y proporciona un ejemplo de trabajo basado en el comando enumerado en la pregunta, la recompensa es suya. –

+0

Con mi método, publicado a continuación, puede hacer lo mismo que @Jon sugerido, pero el alias de comando se cargará previamente cuando abra el dos shell. – djangofan

Respuesta

2

Esta técnica doskey aparece en más de superusuario, ver https://superuser.com/questions/49170/create-an-alias-in-windows-xp.

El problema con él es que no se puede definir un alias para ser utilizado por runas. Se podría definir un alias que incluía tanto runas y el comando que desea ejecutar, pero esto no sería entonces ser reutilizable. Pero ¿qué hay de hacer esto:

SET BIDS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe 
DOSKEY r=runas /user:user /netonly "%$1%" 

que luego se puede utilizar como

r bids 

Por supuesto, esto requiere que establezca un entorno var para cada acceso directo que te gustaría tener, pero creo que esto no es un requisito mayor que establecer el alias doskey. En cualquier caso, no crea un archivo y que no requiere que cualquier cosa puede colocar en el path.

Actualización:

que no lo intenté yo mismo, pero desde luego parece que se puede configurar y olvidarse de él.

  • Las variables de entorno se pueden establecer a través de la configuración del sistema de Windows (ver imagen)
  • Los DOSKEY alias pueden ajustarse cada vez cmd.exe inicia using the registry

enter image description here

+0

¡Genial! Un par de seguir preguntas. ¿Hay alguna forma de persistir esto más allá de una sola sesión? Esto funciona, pero debo reiniciarlo cada vez que reinicie el símbolo del sistema. –

+0

@BobbyB: mira la actualización :) – Jon

+0

¡Muy bien hecho! Muchas gracias –

1

Creo que el problema que está golpeando es que la línea de comandos se evalúa como el nuevo usuario - por lo menos que el nuevo usuario también tiene acceso a su alias, que ganó no funciona

Editar: Es posible que usted podría evitar esto mediante la creación de un archivo por lotes convenientemente colocado (o el acceso directo?) Que pone en marcha OFERTAS y RunAs'ing eso?

Editar:

Ver herehere y para obtener información sobre el comando elección

Ejemplo de uso:

@ECHO OFF 
Echo 1. Some Command 
Echo 2. Some Other Command 
CHOICE /C:12 /N /T:1,10 Choose an option 
IF ERRORLEVEL 2 GOTO COMMAND2 
IF ERRORLEVEL 1 GOTO COMMAND1 
GOTO END 

:COMMAND1 
Runas /Uer:Blah "BLAH" > NUL 
GOTO END 

:COMMAND2 
Runas /Uer:Blah "BLAH" > NUL 
GOTO END 

:END 
+0

Sí, pensé en el archivo por lotes antes, pero hay varios escenarios diferentes en los que hago esto y realmente preferiría no tener tantos archivos de proceso por lotes ... –

+0

FWIW, tengo un único archivo por lotes que usa 'CHOICE .COM' para proporcionar un menú, hacer el 'RunAs' y solicitar una contraseña - Así que simplemente escribo' RunIt', Escojo una opción y escribo una contraseña. En este escenario, también puedo ejecutar diferentes piezas de software como diferentes usuarios (Mi acct estándar/Mi cuenta DBA para SSMS, etc ...) – Basic

+0

¿Cómo es que haces eso? No estoy familiarizado con choice.com –

1

Aquí es un script eso configurará el alias en tus comandos de conchas.Este script le ofrece el escurridizo comando "WHERE":

@ECHO OFF 
ECHO Loading additional commands from: 
ECHO %0 
ECHO Type 'DOSKEY /MACROS:ALL' to see the configured commands. 
:: to install, place this .bat script in the location you want 
:: it to reside and then run this batch script with the argument "register" 
IF "%1"=="register" (
    REG.exe ADD "HKCU\Software\Microsoft\Command Processor\Autorun" /ve /t REG_SZ /d "%0" /f 
    ECHO The DOS profile is registered. Load a new command prompt and test a command. 
) 
@DOSKEY LS=DIR /w 
@DOSKEY CP=COPY $* 
@DOSKEY MV=MOVE $* 
@DOSKEY H=DOSKEY /HISTORY 
@DOSKEY [email protected] %%e in (%PATHEXT%) do @for %%i in ($*%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i 
+0

Interesante alternativa. +1 – VonC

+0

La secuencia de comandos no funciona en todos los sistemas Win7 ... no estoy seguro de por qué, pero funciona en 2 de mis computadoras. – djangofan

Cuestiones relacionadas