Casos de concreto para uso de CMD / BATCH [fechado]

0

Por favor, desculpe o meu inexperiente. Eu não tenho muita experiência com a linha de comando.

Nas minhas pesquisas, a principal razão para o uso de CMD (*) é a automação. Eu não encontrei casos concretos. A maioria dos exemplos são exemplos planejados ou casos simples em que a automação não é realmente necessária.

Daí minha pergunta: quais são os exemplos de ações para as quais o CMD e os arquivos em lote são usados no mundo real? (E como abaixo - além da preferência pessoal e onde há é sem GUI.) Eu não estou olhando para o script em si, apenas o seu objetivo.

* Além da preferência pessoal, ou casos em que uma GUI não está disponível.

    
por ispiro 26.12.2013 / 20:19

2 respostas

1

Os arquivos em lote têm o mesmo benefício que qualquer outra ferramenta de script, eles tornam simples executar tarefas repetitivas (às vezes complexas, às vezes chatas).

Escrevi um script em lote muito simples há alguns meses, porque queria que um conjunto de comandos fosse executado todas as noites às 18h. Então, eu criei esse script que usa comandos mercurial para verificar as alterações (o proprietário de um site que eu mantenho adiciona e remove coisas com FTP). Em seguida, confirma todas as alterações e as envia para a origem (meu servidor).

hg addremove
hg commit -m "Daily update from Prod"
hg push

Em seguida, configuro uma tarefa agendada para executar esse script diariamente. Este, por acaso, é o primeiro script em lote que escrevi em anos, no entanto, devido a minha mudança para o Mac em meu último trabalho, no qual estou desenvolvendo.

No entanto, eu uso scripts de shell (o mesmo tipo de coisa em um sistema operacional diferente) diariamente. O que eu mais uso garante que eu tenha uma unidade de rede montada, me registre em nosso repositório de código-fonte (solicitando uma senha, é claro) e disparos do script de construção. Ao todo, levaria 3 minutos para entrar com os comandos para fazer isso sozinho, mas quando fiz isso, eu regularmente me esquecia de verificar se meu drive estava montado (mapeado), e isso causou um atraso de 10 a 20 minutos ... O roteiro não esquece.

Eu costumava ser um administrador de sistema para um community college e usava scripts em lote o tempo todo, principalmente, como você mencionou, para automação. Quando eu comecei lá, tivemos que visitar cada máquina para atualizar manualmente o antivírus e executar uma varredura. Eu criei um script em lote que copiava a atualização de um local específico em nossa rede, instalava e iniciava uma varredura. Então, em cada máquina de um grupo, jogue meu disquete na unidade, pressione Window-R (para abrir a caixa de diálogo de execução) e digite a: \ up.bat ... Depois que eu comecei, comecei a retroceder e leia até que tenham terminado.

Eu criei outro script para colocar novas máquinas (ou máquinas antigas adaptadas) em operação com nossa configuração padrão antes de comprarmos o software de imagens. O que anteriormente era um processo tedioso de inserir este disco, clique duas vezes em algumas coisas, clique em próximo algumas vezes, aguarde ..., clique em avançar mais um pouco, alterne discos, faça a mesma coisa ... Se transformou em disco de inserção, insira disquete. .. comando de execução. mudar discos quando solicitado ... Quando a rede era mais confiável, que foi alterado para apenas inserir o disquete e executar o comando, ele baixou os arquivos de instalação de uma unidade de rede para mim.

    
por 26.12.2013 / 22:09
1

CMD é apenas uma pequena casa de força disponível em todos os PCs com Windows. net user {samid} /domain pode me dizer rapidamente a maioria das estatísticas que eu quero saber sobre uma conta de domínio e dsquery user -samid {samid}|dsget user -memberof -expand|dsget group -samid cobre o restante, pesquisando recursivamente a participação em grupos para uma conta de domínio.

Eu posso procurar rapidamente todos os locais de rede mapeados em um PC: for /f "tokens=3" %f in ('net use ^|findstr \') do echo %f

Ou lotes podem ser usados para trabalhos onde a compilação é impraticável

@echo off 
echo This script will close Internet explorer then clear out your temp files
pause
taskkill /f /im iexplore.exe
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
"C:\Program Files\Internet Explorer\iexplore.exe"

Este foi um arquivo de lote rápido e sujo que eu coloquei em conjunto para limpar arquivos temporários do IE. É mais fácil colocar um arquivo bat na área de trabalho de alguém e tentar explicar como limpar os arquivos temporários.

Por fim, porque posso continuar o dia todo sobre os benefícios e a utilidade do CMD, ele me ensinou muito sobre como o script funciona e como o computador interpreta os comandos. Foi só quando aprendi o CMD / Batch que realmente me interessei por scripts e programação.

Editar:

Apenas um exemplo concreto de CMD sendo mais eficaz que C # (Hello World!)

c #

public class Hello1
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }
}

CMD

echo Hello, World!

Lote

@echo Hello, World!
@pause  

Ou

@echo off
echo Hello, World!
pause

O CMD e o Batch têm muito menos sobrecarga quando se trata de tarefas simples.

    
por 26.12.2013 / 20:38