Estou tendo problemas para encontrar esses comandos para serem executados em um arquivo de lote?

2

Eu quero um arquivo de lote para extrair informações da primeira linha de um arquivo de texto (bloco de notas), usar essas informações para adicionar informações a um servidor DNS e excluí-las. Eu estou pensando se eu criar um loop, eu posso fazê-lo percorrer todo o caminho através do arquivo de texto, usando a primeira linha de informação para adicionar ao servidor DNS e, em seguida, excluindo a primeira linha antes de iniciar um loop. Por exemplo ... O arquivo em lote seria

@echo off
:start
dnscmd "mydns" /zoneadd (need to know the command from here to add the FQDN from the text file)
::(Need to know the command here to delete the first line of the text file and save the file)
goto start 

O arquivo de texto lê

Siteno1.com
Siteno2.com
Siteno3.com

Então, quero adicionar Siteno1.com ao dns, excluí-lo, começar no início do arquivo de texto, adicionar Siteno2.com ao dns, excluí-lo e começar do início novamente até o texto o arquivo está vazio.

    
por Joshua Cavalucci 17.08.2011 / 02:34

1 resposta

2

Não há primitiva integrada em CMD.EXE para excluir linhas de arquivos de texto. Eu suspeito que você encontraria utilidade no comando for .

@echo off
for /f %%i in (textfile.txt) do echo dmscmd "mydns" /zoneadd %%i

Isso iterará todas as linhas em textfile.txt exibindo a linha de comando dnscmd do exemplo para cada linha do arquivo. (Obviamente, remova o echo para que ele execute comandos).

A sintaxe para for é um pouco arcana. Quando você usa for em um prompt de comando simples, você não duplica %% das variáveis de ambiente. Acho que for é incrivelmente útil e o uso diariamente (mas, também, também estou no prompt de comando diariamente).

    
por 17.08.2011 / 03:26