cria automaticamente arquivos no windows?

1

Acho que gostaria de gerar novamente um diretório de arquivos de texto / falso em um pendrive com os nomes exatos dos arquivos que existem em um diretório mestre.

O diretório master está em uma unidade terabyte e é muito grande para caber em qualquer pendrive. Mas, quando eu estou usando o pendrive, eu gostaria de colidir nomes de arquivos quando estou baixando uma duplicata de outros lugares. ie: eu tento baixar algo e ele diz: "Você já tem um arquivo chamado ..."

Eu não me importo de executar esse script (desde que seja relativamente rápido) manualmente, quando eu atualizar o diretório mestre com novos arquivos adicionais e mover manualmente a estrutura de arquivos de arquivos falsos para o pendrive.

Eu tenho pelo menos 3 níveis de estrutura de diretórios. Eu coloquei uma estrutura de diretório de teste simples com arquivos txt, contra a estrutura real (principalmente) pdf real. Quando eu saio tree /a /f . > list.txt ,:

    Folder PATH listing for volume Windows
    Volume serial number is 00C7-D795
    C:\USERS\USER\DESKTOP\TEST
    |   list.txt
    |   script.bat
    |   script.txt
    |   
    \---Top_Lvl
        |   file-2nd-1.txt
        |   file-2nd-2.txt
        |   file-2nd-3.txt
        |   
        +---2nd_Level-1
        |       file-3rd-1.txt
        |       file-3rd-2.txt
        |       file-3rd-3.txt
        |       
        +---2nd_Level-2
        |   |   file-3rd-4.txt
        |   |   file-3rd-5.txt
        |   |   file-3rd-6.txt
        |   |   
        |   \---3rd_Level-1
        |           file-4th-1.txt
        |           file-4th-2.txt
        |           
        \---2nd_Level-3
                file-3rd-7.txt

Eu não sei escrever um cabeçalho para que um leitor de pdf exiba um arquivo com extensão .pdf (mas na verdade é um arquivo de texto) - o que seria um bônus realmente incrível. E eu não consigo encontrar um comando (attrib não funciona, tanto quanto eu posso dizer) que irá produzir o tamanho do arquivo na saída de texto. Como seria legal ter o tamanho do arquivo real disponível clicando no arquivo falso, sem ter que procurar nada em outro lugar.

Soluções parciais potenciais?

Eu encontrei isto:

Windows / Criar arquivos txt de subpastas com nomes de arquivo

Mas parece fazer uma bagunça e só faz um nível de diretórios.

E quando eu o reescrevi / modifiquei, funcionou uma vez e depois parou de funcionar:

    @echo off

    for /dd %%D in (*) do (
      cd %%~nxD
      tree /a /f > ..\%%~nxD.txt
      cd ..

      echo %%~nxD > dir_info.tmp
      for /f "skip=3 delims=*" %%a in (%%~nxD.txt) do (
        echo.%%a >> dir_info.tmp
      )
      copy /y dir_info.tmp %%~nxD.pdf
      del /f /q dir_info.tmp
    )

Ele despeja os resultados no diretório em que é executado, em vez de soltá-lo na área de trabalho (e não consigo descobrir como soltá-lo em uma área de trabalho padrão - em vez de codificá-lo, se eu usar mais de um computador / conta para acessar a unidade de diretório mestre). E eu não tenho certeza se você pode especificar o stick usb, pois isso provavelmente muda o tempo todo, dependendo do que estiver plugado.

Além disso, muitas vezes estou usando sistemas Windows antigos, e é por isso que eu estava pesquisando um arquivo em lote. Se há um aplicativo que faz isso, eu definitivamente considero isso - em vez de recortar a roda.

@eris sugeriu Robocopy e há algo chamado RichCopy:

link

Mas esses aplicativos fariam duplicatas reais do diretório mestre - e eu não tenho muito espaço de armazenamento extra, na unidade mestre (e, como dito anteriormente: em o stick usb de trabalho).

Parece que eu não estava claro o suficiente; Eu estou tentando fazer um diretório de sombra, que tem todos os nomes de arquivos (e otimamente informações sobre o arquivo real, como tamanho), incluindo extensões - mas no espaço mínimo; Eu estou supondo que vai ser um megabyte ou 3 no consumo de espaço real (como cada arquivo e diretório usa ~ block) vs. 100s de shows (por exemplo: arquivo de 50MB, arquivo de 1MB, arquivo de 832k, arquivo de 10MB, arquivo de 15MB).

Parece que o robocopy é o que eu quero, se conseguir que a linha de comando funcione corretamente:

ROBOCOPY Top_Lvl Shadow /CREATE

Não faz subdiretórios.

    
por anonymouse 18.09.2016 / 20:48

1 resposta

0

@eris teve a ideia certa.

Na linha de comando:

robocoy *Top_Lvl* *Shadow* /create /mir

Parece que cria uma estrutura de diretórios sombra com arquivos de comprimento zero que espelha o diretório mestre. Tudo o que resta é descobrir como fazer isso em uma unidade, que deve ser simples para descobrir caminhos para a origem e o destino. No entanto, ele precisa ser usado com cuidado, pois ele não gera automaticamente um erro antes de gravar arquivos e diretórios (sub-ótimo, imho).

Ele não faz o trabalho adicional de ser capaz de criar arquivos que também fornecem informações (tamanho do arquivo original), mas é uma solução suficientemente boa por enquanto.

    
por 18.09.2016 / 22:49

Tags