Estrutura de pastas da linha de comando no Windows

1

Eu preciso criar uma estrutura de pastas via linha de comando, a estrutura é a seguinte:

nome de usuário > pasta1 > pasta2 > folder3 (e há subdiretórios dentro dessas pastas também)

Este é um host do Windows, eu fiz "dir / ad > dir.txt (Ele gera a pasta pai)

Além disso, qual comando eu usaria para criar pasta a partir de um arquivo de texto?

Eu usei o xcopy / T / E (ele falha em um certo ponto, pois os arquivos estão sendo lidos a partir dessas pastas na maior parte do tempo), tenho cerca de 1500 pastas e sub-pastas dentro dessas pastas.

    
por rihatum 19.03.2012 / 20:05

2 respostas

2

Não está muito claro o que você quer. Você quer replicar uma estrutura de diretórios de um PC para o outro e existe uma conexão entre o host no qual você criou o arquivo de texto? Se assim for, você pode copiar uma estrutura de diretórios sem os arquivos usando a linha de comando:

robocopy [fonte] [destiantion] / Criar

Ou é que você tem um arquivo de texto com todos os caminhos que você deseja criar. Nesse caso, você pode querer ser criativo com o bloco de notas. Por exemplo, se você tiver um arquivo com os diretórios que deseja criar, como:

c: \ Users \ john \ dir1

Abra o arquivo com o bloco de notas. Pressione CTRL + H e substitua 'C:' por 'MD C:'. Seu arquivo deve ficar assim.

MD c: \ Users \ john \ dir1

Agora salve o arquivo como um batchfile (por exemplo, createfolder.cmd) e clique duas vezes nele. Ele irá criar todas as pastas. Se alguns diretórios contiverem espaços, isso falhará. Você pode colar tudo no excel em colmn B. Em colmn A, adicione MD ", em colmn C add " selecione all e copie para o notepad novamente. Agora substitua todos os Tabs por uma string vazia e salve como um batchfile.

Espero que ajude.

PS: Se você é familiar com o comando 'for' isso seria mais fácil, mas 'for' é de fato bastante complicado.

    
por 19.03.2012 / 21:12
3

Sua pergunta não é muito clara sobre o que você realmente precisa fazer.

Ao lê-lo, você tem uma lista em um arquivo de texto que consiste em todas as pastas que você precisa criar, que foram criadas ao fazer um diretório / anúncio.

Esse é seu primeiro problema. Se você fizer isso na pasta home do usuário no Vista ou no Win7, você terá uma mistura de dirs e junções. Você terá que decidir como ameaçá-los. (Talvez pule as junções?)

Em seguida, você pode usar uma variante no comando FOR para ler o arquivo de texto e chamar o comando MKDIR para cada pasta.

Use FOR /? e MKDIR /? por alguma ajuda. Você precisará de extensões CMD ativadas. Veja CMD /? sobre como fazer isso se necessário.

Esteja avisado: o FOR possui uma sintaxe muito obscura e enigmática, mas pode fazer algumas coisas surpreendentes se usado corretamente.

EDITAR: Depois de ver os comentários (e ter uma caixa do Windows à mão para verificar a sintaxe):

dir / ad / b / s fornecerá uma lista de pastas simples.

Você terá que editar a saída em um editor de texto para alterar a letra da unidade a partir de ou inserir algum nível extra de pastas em algum lugar. Você tem que colocar um "antes e depois de cada linha para manipular caminhos com espaços corretamente.

Em seguida, execute-o por FOR assim:

FOR /F "usebackq"  %i IN (dir.txt) DO MKDIR %i

Por favor, note: O comando FOR requer que você use %% i em vez de% i quando você usá-lo em um arquivo em lote (ao invés de interativamente).

    
por 19.03.2012 / 20:50