2011-01-17 18 views
29

Soy terriblemente nuevo en las secuencias de comandos en Windows. Usando Windows 7 64.abrir ventana del símbolo del sistema y cambiar el directorio de trabajo actual

Estoy tratando de hacer un archivo .bat con el que puedo hacer doble clic, y hacer que abra un símbolo del sistema y automáticamente cd a un cierto directorio.

He intentado hacer un archivo .bat con

@ECHO OFF 
cmd "cd C:\my\destination" 

que se abre lo que parece ser un símbolo del sistema, pero no parece que me permita escribir cualquier comando.

Luego probé:

@ECHO OFF 
start cmd "cd C:\my\destination" 

Pero esto sólo me envió en un primer bucle toneladas y toneladas de instrucciones hasta que mi equipo se estrelló :) El archivo .bat se encuentra en el directorio de destino si lo que importa.

+2

la razón por la que su primer archivo 'bat' no permitirá que se escribe se debe a que el proceso ha terminado –

+0

@Ardman, el primer archivo .bat funcionó correctamente sin la bandera/k, una vez que rena. med el archivo a algo además de 'cmd.bat' – goat

+0

por cierto, las personas interesadas en mi pregunta también pueden encontrar esto útil: en el explorador de Windows, mantenga presionada la tecla Mayús y haga clic derecho; verá una nueva opción, abrir el símbolo del sistema aquí ", que es una salsa increíble. – goat

Respuesta

62

Esto funciona para mí:

@ECHO OFF 
cmd.exe /K "cd C:\my\destination && C:" 

La cadena entre comillas es en realidad dos comandos (separados por un doble ampersand): el primer comando es cambiar al directorio especificado, el segundo comando es cambiar a la letra de unidad especificada.

Ponga esto en un archivo por lotes (.BAT) y cuando lo ejecute, debería ver una ventana del símbolo del sistema en el directorio especificado.

+12

O 'cd/d C: \ my \ destination' - cambia la unidad y el directorio de una vez. –

+1

Me salvó un montón de cosas buscando esto. Esto es ideal para los desarrolladores de Salesforce que usan ANT – booky99

6

Utilice el interruptor /K:

@ECHO OFF 
start cmd.exe /K "cd C:\my\destination" 

Pero en mi humilde opinión, el interruptor más útil es /?.

Starts a new instance of the Windows XP command interpreter 

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] 
    [[/S] [/C | /K] string] 

/C  Carries out the command specified by string and then terminates 
/K  Carries out the command specified by string but remains 
/S  Modifies the treatment of string after /C or /K (see below) 
/Q  Turns echo off 
... 

y sólo si no funciona, entonces Google, como @Neeraj sugirió: D

+2

Esto funciona. Resulta que la bandera/k no era necesaria. La razón por la cual mis intentos anteriores fallaron y me enviaron a un bucle fue porque había nombrado mi archivo .bat cmd.bat, y usé cmd en lugar de cmd.exe (gracias google) – goat

+1

Tuve el mismo problema. También llamé a mi archivo por lotes como cmd.bat y esa es la causa del bucle. La opción/k no es necesaria para resolver este problema. Es por eso que voté por @chris comment. –

3
@ECHO OFF 
%comspec% /K "cd /D d:\somefolder" 

El/D cambiará carpeta y unidad y trabaja en 2000+ (No estoy seguro de NT4)

Si se echa un vistazo al comando de apertura de Vista aquí, se utiliza cmd.exe /s /k pushd \"%V\" pero don' t pensar% V está documentado. Usando pushd es una buena idea si su camino es UNC (\\server\share\folder) Para obtener UNC corriente del funcionamiento del directorio, puede que tenga que establecer la entrada de registro DisableUNCCheck ...

+0

+1 para la/d. Yo uso el/d todo el tiempo también. ¡Es más simple! . inicia cmd.exe/K "cd/d C: \ my \ destination" – codea

0

acaba de abrir un editor de texto y escriba

start cmd.exe 

cd C:\desired path 

Luego guárdelo como un archivo .bat. Funciona para mi.

2

¿Por qué es tan complicado? Simplemente cree un alias para cmd.exe, haga clic derecho en el alias y navegue hasta su configuración. Cambie el "ejecutar en" a la ruta que desea tener como ruta estándar. Siempre comenzará en este camino.

+0

Whoa ahora estás haciendo las cosas MUY fáciles ;-) ¡Gracias por el consejo! – bernie

0

Puede crear un archivo por lotes "ir a la carpeta".bat" con las siguientes afirmaciones:

rem changes the current directory 
cd "C:\my\destination" 
rem changes the drive if necessary 
c: 
rem runs CMD 
cmd 
1

Esto podría hacerse así:

@ECHO OFF 
cd /D "C:\my\destination" 
cmd.exe 

Si necesita ejecutar un archivo o un comando después de abrir el cmd puede simplemente reemplazar la última línea con:

cmd.exe /k myCommand 
Cuestiones relacionadas