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


0

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

Nas minhas pesquisas, a principal razão para o uso do 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í a minha pergunta - Quais são os exemplos de ações que CMD e arquivos de 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 procurando o script em si, apenas seu objetivo.

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


1
Eu tentei o meu melhor para responder a sua pergunta, mas é uma questão tão ampla que provavelmente será fechada como muito ampla. Eu sugeriria fazer uma pergunta mais precisa, pois ela é muito ampla
50-3

1
Por que usar c # quando há Java, Batch, C, F, R, etc? Lote permite que você use os utilitários CMD existentes, em vez de desperdiçar seu tempo reinventando a roda.
Ƭᴇcʜιᴇ007

@ techie007 C # era um ponto secundário menor. (Editado agora porque vejo que foi interpretado como uma questão de batch et al. Versus c #.) Minha pergunta é que ações automatizadas são feitas no mundo real em qualquer idioma. (Excluindo aqueles que justificariam um aplicativo dedicado, é claro).
ispiro

2
Para mim, parece que você está perguntando por que alguém agruparia mais de um programa para realizar uma tarefa, em vez de criar um novo aplicativo toda vez, apenas para essa tarefa. Tempo e dinheiro para dois. ;)
Ƭᴇcʜιᴇ007

Respostas:


1

Os arquivos em lote têm o mesmo benefício que qualquer outra ferramenta de script, tornando 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 este script que usa comandos mercurial para checar mudanças (o dono 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

Então eu configurei uma tarefa agendada para executar este script diariamente. Este, por acaso, é o primeiro script em lote que escrevi em anos, no entanto, devido a minha mudança para o Mac no meu último trabalho, onde estou desenvolvendo.

No entanto, eu uso scripts de shell (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 o fiz, eu regularmente esquecia de verificar se o 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 sistemas para uma faculdade comunitária e usava scripts de 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 funcionamento 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, espere ..., 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.


1

CMD é apenas uma pequena casa de força disponível em todas as janelas do PC. net user {samid} /domain pode rapidamente me dizer mais estatísticas que eu quero saber sobre uma conta de domínio e dsquery user -samid {samid}|dsget user -memberof -expand|dsget group -samid abrange o resto, pesquisando recursivamente membros do grupo 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 último, 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. Não foi até que eu aprendi CMD / Batch que eu 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

eco Olá, mundo!

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.


Isso não poderia ser conseguido por mmc.exe?
ispiro

@ispiro que implicaria que há apenas uma maneira de realizar qualquer tarefa. Eu posso te garantir dsquery user -samid {samid}|dsget user -memberof -expand|dsget group -samid leva de 2 a 3 minutos para processar ~ 100 membros se eu fizer isso via mmc.exe, pode levar 30-40 minutos
50-3

Sua resposta para minha pergunta é: Looking up domain accounts info / network locations / clearing temp files of a running application. (A parte sobre CMD vs C # não é minha pergunta. Acabei de mencionar o que fiz para me esclarecer.) Obrigado.
ispiro

@ ispiro Acabei de mencionar isso como uma referência para mostrar que o cmd é baixo. Tudo o que é possível obter a partir do cmd pode ser feito no GUI e no vissa virsa. O motivo pelo qual eu uso o cmd é que está tudo lá e não em 100 aplicativos e snap-ins diferentes. Tudo depende do usuário e como eles querem usar um computador.
50-3
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.