Acho que gostaria de regenerar um diretório de arquivos de texto/falsos em um pendrive com os nomes exatos dos arquivos que existem em um diretório mestre.
O diretório mestre está em uma unidade de terabyte e é grande demais para caber em qualquer pendrive. Mas, quando estou usando o pendrive, gostaria de colidir nomes de arquivos ao baixar uma duplicata de outros lugares. ou seja: tento baixar algo e aparece: "Você já tem um arquivo chamado..."
Não me importo de executar esse script (desde que seja relativamente rápido) manualmente, quando atualizo o diretório mestre com novos arquivos adicionais e movo manualmente a estrutura de arquivos resultante de arquivos falsos para o pendrive.
Tenho pelo menos 3 níveis de estrutura de diretórios. Eu montei uma estrutura de diretório de teste simples com arquivos txt, em vez da estrutura real (principalmente) do PDF. Quando eu produzo 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
Não sei como 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 não consigo encontrar um comando (attrib não funciona, pelo que sei) que irá gerar o tamanho do arquivo na saída de texto. Pois seria legal ter o tamanho do arquivo real disponível clicando no arquivo falso, sem ter que procurar nada em outro lugar.
Possíveis soluções parciais?
Eu achei isto:
Windows / Crie arquivos txt de subpastas com nomes de arquivos
Mas parece fazer uma bagunça e só faz um nível de diretórios.
E quando eu 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 despejaria os resultados no diretório em que é executado, em vez de soltá-los na área de trabalho (e não consigo descobrir como soltá-los em uma área de trabalho padrão - em vez de codificá-los, se eu usar mais de um computador/conta para acessar a unidade do diretório mestre). E não tenho certeza se você pode especificar o pendrive, pois isso provavelmente muda o tempo todo, dependendo do que mais estiver conectado.
Além disso, estou frequentemente em sistemas Windows antigos, e é por isso que estava pesquisando um arquivo em lote. Se houver um aplicativo que faça isso, eu definitivamente consideraria isso - em vez de recortar a roda.
@eris sugeriu Robocopy e há algo chamado RichCopy:
https://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight
Mas essas aplicações tornariamrealduplicatas do diretório mestre - e não tenho muito espaço de armazenamento livre, nem na unidade mestre (e, como afirmado anteriormente: no pendrive em funcionamento).
Parece que não fui suficientemente claro; Estou tentando criar um diretório shadow, que tenha todos os nomes de arquivos (e, de maneira ideal, informações sobre o arquivo real, como tamanho), incluindo extensões - mas em espaço mínimo; Suponho que será um megabyte ou 3 no consumo real de espaço (já que cada arquivo e diretório usa ~ bloco) versus centenas de shows (por exemplo: arquivo de 50 MB, arquivo de 1 MB, arquivo de 832k, arquivo de 10 MB, arquivo de 15 MB).
Parece que robocopy é o que eu quero, se conseguir fazer a linha de comando funcionar corretamente:
ROBOCOPY Top_Lvl Shadow /CREATE
Não cria subdiretórios.
Responder1
@eris teve a ideia certa.
Na linha de comando:
robocoy *Top_Lvl* *Shadow* /create /mir
Parece que ele cria uma estrutura de diretórios shadow com arquivos de comprimento zero que espelha o diretório mestre. Tudo o que resta é descobrir como fazer isso em uma unidade, o que deveria ser uma simples questão de descobrir caminhos para a origem e o destino. No entanto, ele precisa ser usado com cautela, pois não gera automaticamente um erro antes de sobrescrever arquivos e diretórios (abaixo do ideal, imho).
Ele não faz o trabalho adicional de criar arquivos que também fornecem informações (tamanho do arquivo original), mas é uma solução boa o suficiente por enquanto.