Claudemir01 0 Denunciar post Postado Julho 25, 2016 Olá amigos. Estou escrevendo um script.bat onde limpa uma pasta deixando apenas os arquivos necessários para a abertura de um servidor de MW2 (http://steamcommunity.com/sharedfiles/filedetails/?id=718308794)Entretanto não consigo deletar as pastas utilizando:rd * /s /d O console me retorna:A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta. @echo off title Cleanup IW4M - Server attrib %installdir% -r -h -s /d /s attrib +r +s cleanup.bat if exist mod ( attrib +r +s mod ) if exist main ( attrib +r +s main\iw_server.iwd attrib +r +s main\*.cfg del main\*.* /q ) if exist scripts ( attrib +r +s scripts ) set /p lang= <localization.txt if exist zone\%lang% ( attrib +r +s zone\%lang%\af_caves.ff attrib +r +s zone\%lang%\af_chase.ff attrib +r +s zone\%lang%\airport.ff del zone\%lang%\*.* /q ) if exist zone\v2 ( attrib +r +s zone\v2\dlc1_ui_mp.ff attrib +r +s zone\v2\dlc2_ui_mp.ff attrib +r +s zone\v2\environment_forest.ff attrib +r +s zone\v2\oilrig_load.ff del zone\v2\*.* /q ) if exist bin ( attrib +r +s bin ) if exist v2 ( attrib +r +s v2 ) attrib +r +s iw4m.dll attrib +r +s libnp.dll attrib +r +s logo.bmp attrib +r +s iw4m.exe attrib +r +s startserver.bat attrib +r +s license.dat attrib +r +s binkw32.dll attrib +r +s localization.txt attrib +r +s mss32.dll del *.* /q attrib -r -h -s /d /s rd * /s /q attrib %installdir% -r -h -s /d /s Compartilhar este post Link para o post Compartilhar em outros sites
Claudemir01 0 Denunciar post Postado Julho 25, 2016 Me parece que isso faz apagar tudo:rd . /s /qEntretanto me parece que o rd ignora proteções. Não há como eu saber quais pastas o usuário tem, função do script é apagar tudo que não é necessário. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Julho 26, 2016 Como você identifica o que é necessário do que não é necessário? Compartilhar este post Link para o post Compartilhar em outros sites
Claudemir01 0 Denunciar post Postado Julho 27, 2016 Eu sei o que é necessário e protejo "attrib +r +s" e deleto tudo e tudo que não esta protegido ou seja tudo que não é necessário. O que não é necessário pode ser qualquer coisa e eu não faço ideia do que pode ter, o usuário pode ter incluído arquivos de outros clientes e diversas outras coisas que não dá para eu saber.O problema é que "del" deletar apenas os arquivos da pasta raiz para se deletar as pastas teria de ser "rd" e como eu não sei bem quais pastas vão estar lá usei "rd . /s /q" entretanto "rd" ignora a proteção feita por "attrib +r +s" e acaba deletando tudo. Eu pensei em contornar esse problema movendo os arquivos necessários para outro lugar e assim posso deletar tudo que ficou na pasta e depois eu voltaria os arquivos necessários."move zone\v2\dlc1_ui_mp.ff %HomeDrive%"mas não sei como fazer para voltar os arquivos já que o nome da pasta e sua unidade são desconhecidos (eu posso usar um nome e a pessoa ter escolhido outro), pensei em criar todas as pastas no desktop e mover os arquivos de acordo com suas pastas mas quando tento criar umapasta no desktop o cmd me retorna isso:Já existe uma subpasta ou um arquivo C:\Users\Claudemir\Desktop\. Erro ao processar: C:\Users\Claudemir\Desktop\. Quando tento mover os arquivos para o desktop eles não vão para o desktop, eles vão para a pasta onde esta o .bat ou seja a pasta raiz original da pessoa, isso não seria mal se tudo que esta nessa pasta seria excluído. Compartilhar este post Link para o post Compartilhar em outros sites