Execução automática de comandos quando um prompt de comando é aberto

16

Estou procurando uma maneira de executar alguns comandos de console automaticamente quando um prompt de comando é aberto no Windows, especificamente para definir alguns aliases de comando.

Por exemplo, quando um prompt de comando é aberto, eu quero que um comando como o seguinte seja executado automaticamente para que eu possa usar ls em vez de dir .

doskey ls=dir

Como isso pode ser feito?

    
por Daniel Williams 25.06.2011 / 21:34

6 respostas

8

Se você quiser que ele seja carregado na inicialização, em vez de quando você fizer login, se você tiver o XP Pro (o XP home não inclui o gpedit.msc), faça o seguinte:

Start>Run>gpedit.msc

e aperte enter. Em seguida, execute gpupdate / force a partir de uma linha de comando.

Vá para

Computer Configuration>Windows Settings>Scripts>Startup

e adicione o local ao script.

Você também pode fazer isso para um logon de usuário em

User Configuration>Windows Settings>Scripts>Startup

Se você tiver o XP Home, poderá copiar os scripts para:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

para carregá-los no boot, ou:

C:\Windows\System32\GroupPolicy\User\Scripts\Logon

para carregá-los para um usuário no logon. A pasta GroupPolicy está oculta.

    
por 25.06.2011 / 22:02
41

Os aliases de comando são específicos da janela do console na qual você os configura, portanto, um script de inicialização não funcionará. Você pode fazer assim:

  1. Crie um arquivo de lote ( .cmd ) com seus comandos doskey , coloque-o em algum lugar em Application Data.

  2. Configure para ser iniciado automaticamente sempre que você abrir cmd . A configuração está no registro:

      tecla
    • : HKCU\SOFTWARE\Microsoft\Command Processor
    • valor: AutoRun
    • tipo: REG_EXPAND_SZ
    • data: "%AppData%\aliases.cmd"
por 27.06.2011 / 00:17
4

Diferentes intérpretes de comando manipulam aliases de comando de maneiras diferentes.

O CMD da Microsoft depende do subsistema de console do Win32 para fornecer seu mecanismo de alias de comando. O comando doskey , na verdade, interage com o console do processo, e é o próprio console que contém aliases. Assim, os aliases são por console e transitórios.

O TCC / LE da JP Software lida com aliases em si. O alias command permite visualizar e manipular aliases, que são "locais" ou "global". Os aliases ainda são temporários, mas são privados para um processo de intérprete de comando ou compartilhados entre todos os processos do interpretador de comandos (em todos os consoles).

Shells, como o shell Korn no Kit de ferramentas do utilitário SFUA - cujas ferramentas são executadas no Subsistema para Aplicativos Baseados no UNIX que aparece bem na caixa do Windows 7 Ultimate edition e do Windows Server 2008 R2 (para o Windows XP, pode-se usar um faça o download e instale o < href="http://technet.microsoft.com/en-gb/library/bb496506.aspx" title="Serviços para UNI X versão 3.5 "> Serviços para UNIX versão 3.5 .) - e o shell Bourne Again de cygwin similarmente lidar com aliases próprios. Os aliases são transitórios e por processo de intérprete de comandos.

O carregamento automático de um conjunto inicial de aliases varia também por intérprete de comandos.

Em todos os casos, um coloca comandos para definir os aliases em um script de algum tipo.

grawity já forneceu uma das as duas chaves de registro que causam o CMD da Microsoft para executar um comando quando ele é iniciado . Infelizmente, isso é por processo do interpretador de comandos, mesmo que os próprios aliases estejam armazenados por console . Inicie um interpretador de comandos secundário a partir do inicial, e quaisquer alterações manuais nos aliases padrão serão redefinidas. Uma alternativa, que pelo menos executa a inicialização apenas uma vez por console, é adicionar a opção /K e o nome de um script de comando que chama doskey ao comando tail no atalho que inicia o interpretador de comandos.

O TCC / LE da JP Software executa automaticamente o script TCSTART na inicialização. Novamente, isso é por processo de intérprete de comando. No entanto, os aliases "locais" do TCC são também por processo do interpretador de comandos, portanto, esse é o local correto para inicializar os aliases se um deles estiver empregando aliases locais. Para aliases globais, basta criar um atalho na sua pasta Startup que carrega aliases de um arquivo (com alias /r ) e, em seguida, executa o título o comando shralias para que eles persistam depois que o atalho terminar de ser executado.

Para as munições Bourne Again e Korn, simplesmente faça o mesmo com essas conchas em qualquer outra plataforma. Use o comando alias nos scripts $HOME/.profile e $HOME/.bashrc para o shell Bourne Again; e use o comando alias nos scripts $HOME/.profile , ENV e $HOME/.kshrc para o shell Korn.

    
por 22.07.2011 / 13:55
2

A resposta de Gravity funcionou muito bem para mim.

Eu criei um script shell-aliases.cmd na minha pasta Documentos (em algum lugar eu posso encontrá-lo mais tarde).

Em seguida, criou o valor de sequência expansível "AutoRun" na chave do Registro:

'Processador HKEY_CURRENT_USER \ Software \ Microsoft \ Command \

Defina o valor para o caminho completo para o arquivo de aliases (o meu estava em 'C: \ Users \ Lee \ Documents \ shell-aliases.cmd').

Depois que recarreguei o prompt de comando, meus aliases doskey funcionaram. Além disso, meu arquivo de aliases é facilmente acessível e está pronto para ser editado, já que penso em mais para adicionar.

    
por 08.02.2013 / 14:10
0

Existem vários locais que serão utilizados, mas o menu Iniciar > A pasta de inicialização provavelmente é a mais fácil.

Execute o 'msconfig' e veja quais programas são iniciados e por quê. Você pode simplesmente adicionar seu programa a uma dessas listas (por exemplo, no registro).

    
por 25.06.2011 / 21:36
0

O problema aqui é que, se você fizer isso na inicialização, essas substituições estarão disponíveis apenas no prompt do CMD aberto. Se ele fechar, todas essas substituições serão perdidas e devem ser feitas novamente para cada prompt de comando aberto.

Então, algumas formas alternativas (você pode combiná-las):

eu. Crie um lote e um atalho:

  1. Crie um lote com essas macros e salve-o em algum lugar conhecido (por exemplo, c: \ apps \ mycmd.bat).
  2. Crie um atalho para ele na área de trabalho (ou onde você quiser) colocando "cmd / k" antes do caminho (por exemplo, "cmd / k c: \ apps \ mycmd.bat").
  3. Assim, todos os seus comandos serão executados sempre que você abrir esse atalho.

II. Crie um lote e uma entrada na variável de ambiente PATH:

  1. Crie um lote com essas macros e salve-o em algum lugar conhecido (por exemplo, c: \ apps \ mycmd.bat).
  2. Vá para Painel de controle > Sistema > Configurações avançadas > Avançado > Variáveis ambientais.
  3. Nas entradas do usuário ou do sistema, procure uma variável chamada PATH. Clique duas vezes e, no final, insira ";" e o caminho para o seu BAT (por exemplo, "c: \ apps \" = > "previous_string; c: \ apps \"), depois Ok e Ok.
  4. Então, quando você usa um cmd (ou em um arquivo BAT), basta colocar o nome de um BAT no caminho criado (por exemplo, "c: \ apps") para executar seus comandos (por exemplo, digite "myapps" para executar essas substituições comandos).
por 26.06.2011 / 01:51