Estou lutando para obter uma solução para verificar todas as pastas em um diretório e criar um arquivo zip dentro dessas pastas do conteúdo da primeira/única subpasta.
aqui está um exemplo de pasta/estrutura/hierarquia
I:\Unsorted\Sony - PlayStation Vita\NoNpDrm Physical\SENRAN KAGURA SV [PCSE00398] [NTSC]\PCSE00398
Eu gostaria de obter o conteúdo dentro de PCSE00398
compactado em um zip (com o mesmo nome) e deixado na I:\Unsorted\Sony - PlayStation Vita\NoNpDrm Physical\SENRAN KAGURA SV [PCSE00398] [NTSC]
pasta.
Para chegar ao último nível de uma subpasta, basta verificar se em cada subpasta existe outra pasta ali, caso contrário, compacte esta pasta de último nível.
Você pode usar o
for /d /r
loop, que passará por todas as pastas, e em cada pasta dentro do loop, usar otree
comando junto comfindstr
, onde você pode verificar se a pasta atual tem ou não mais subpastas.Você pode usar o em todas as subpastas recursivamente com , e verificando cada saída com findstr "string" ( ) redirecionando para o operador e execute a ação ( ) se não encontrar esta string na saída do comando :
tree "current_looping_folder" /a
for /d /r
"\---"
||
Rar
\---
tree
\---Last Folder
A saída acima é da pasta onde estou,
F:\SUPERUSER\Q1599429
e aqui temos aLast Folder
subpasta, mas se estou naF:\SUPER_USER\Q1599429\Last Folder
subpasta, recebo a saída abaixo:Se
findstr
não encontrar a string"\---"
, não tenho subpasta na pasta atual, esta é a última pasta:Neste caso, se não houver subpasta, o comando command não terá sucesso, fazendo com que o operador execute o comando exatamente na sua última pasta do nível de pasta real...
tree "Actual_Loop_Folder" /a | findstr "\---"
||
Rar.exe
\
é necessário para escapar do caractere\
emfindstr
||
operador trabalha mecanicamente:WinRar.exe
substituirRar.exe
/editar:Rar/WinRar
comando:[√] Para Loop
[√] Para /D Loop
[√] Para Loop /R
[√] WinRar.exe | Rar.exe /?
[√] Operador de CMD/Bat /dostips.com
[√] Execução Condicional || && ...