none
Scripts pastas TMP RRS feed

  • Pergunta

  • Caros eu tenho um servidor de TS, onde o pessoal acessa o erp da empresa nele .Pois estao em outra unidade da empresa .

    Dentro da  pasta onde fica instalado o  programa tem as sub pastas que tem os modulos do programa .

    Ex: CorporeRM\RM Fluxus

    Dentro dessas sub pastas que contem os modulos , são criadas algumas pastas TMP . No caso essas pastas TMP é criada pq quando o usuario loga no TS ele cria essa pasta temporaria .

    O que eu preciso é um script que eu possa apagar essas pastas TMP , pois elas nao sao apagadas e sim  ficam acumuladas no servidor .

    Alguem tem como me falar .
    ___________________ Diego Nogueira diego.nc@hotmail.com
    quinta-feira, 10 de setembro de 2009 20:23

Respostas

  • Olá,

    Irá apagar as pastas que tem ".tmp" no nome.


    Faça um teste em um ambiente teste.

    Cria uma pasta em um computador: "c:\corporeRM\RM FLUXUS\

    Crie varias pastas conforme o seu ambiente "auahnd.tmp" "duahnd.tmp"


    E execute o script.

    Poste os resultados.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quarta-feira, 16 de setembro de 2009 12:23

Todas as Respostas

  • Olá,

    Dá uma olhada no link abaixo:

    http://social.technet.microsoft.com/forums/pt-BR/scriptadminpt/thread/be4ee6a1-ca36-4756-89e6-b8a995785a0b/


    Qualquer dúvida, poste para nós.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 10 de setembro de 2009 20:50
  • strComputer = "."
      Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
      Set colFiles = objWMIService.ExecQuery _
       ("SELECT * FROM CIM_DataFile WHERE Extension =\\c:corporeRM\RM FLUXUS 'tmp'")
       For Each objFile in colFiles
       objFile.Delete
       Next


    Seria desse jeito que ficaria ?
    Agora o que eu tenho é varios modulos .
    Entao eu tenho dez sub pastas  da pasta principal que é Corpore RM
    ex:
    C: corpore RM\ RM FLUXUS
    c: CORPORE RM \ RM NUCLEUS .

    EU TENHP DEZ SUB PASTAS NESSA ESTRUTURA .
    COMO FAÇO PARA APAGAR TODAS ?

    ___________________ Diego Nogueira diego.nc@hotmail.com
    quinta-feira, 10 de setembro de 2009 21:30
  • Alguem sabe dizer se isso vai funcionar ?????
    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 12:21
  • Olá,

    Não vai não diego... porque está usando extensão nos parametros (Extension)


    Verifique o script abaixo: Ele está apagando e gerando LOG.


    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\corporeRM\RM FLUXUS\tmp"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "log.txt"


    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS DELETADOS EM: " & now
    objLogFile.WriteLine "==================================================="

    ChecaArquivo strPasta
    GeraLog(strPasta)
    objFSO.deleteFolder(strPasta)

    wscript.echo "FIM DO SCRIPT"
    wscript.quit




    Sub ChecaArquivo(strSubPasta)

    Set Folder = ObjFSO.GetFolder(strSubPasta)

    For each subFolder in Folder.SubFolders
       GeraLog SubFolder.Path
       ChecaArquivo SubFolder.path
       objFSO.deletefolder(SubFolder.Path)
    Next


    End sub



    '====================================================================

    Sub GeraLog(strCaminho)


    Set objArq = ObjFSO.GetFolder(strCaminho)
    Set MyFiles = objArq.files 

    For Each MyFiles in objArq.Files
       strFileOrig = Myfiles.path
       objLogFile.WriteLine "ARQUIVO DELETADO : "  & myfiles.path &  " deletado em : " & Now
       objFSO.deletefile Myfiles.path
    Next
    End sub



    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    sexta-feira, 11 de setembro de 2009 12:45
  • se colocar  assim??funcionam ???? pois ai acho que vou apagar todos os tmps da maquina ?
    corro algum risco se eu apagar todos os tmps da maquina ?
    ou nao ? pois é arquivo temporario .??

    strComputer = "."
      Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
      Set colFiles = objWMIService.ExecQuery _
       ("SELECT * FROM CIM_DataFile WHERE Extension ='tmp'")
       For Each objFile in colFiles
       objFile.Delete
       Next
    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 12:53
  • Olá,

    Assim ele vai apagar todos os tmp´s da maquina.

    Correr risco você não corre, mas se tiver algum arquivo em uso, ele vai dar erro.

    Para resolver, coloque no inicio do script: on error resume next

    Você pode usar o script que eu te passei como base para gerar um log dos arquivos apagados.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    sexta-feira, 11 de setembro de 2009 13:39
  • entao  é melhor usar os dois scripts ?


    on error resume next
    strComputer = "."
      Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
      Set colFiles = objWMIService.ExecQuery _
       ("SELECT * FROM CIM_DataFile WHERE Extension ='tmp'")
       For Each objFile in colFiles
       objFile.Delete
       Next

    seria assim o script ?
    agora o que  vc passou seria so paa gerenciar logs ???


    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 13:47
  • Olá,

    Isso mesmo, conforme o exemplo abaixo:

    on error resume next

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objLogFile = objFSO.OpenTextFile("log.txt", 8, True, 0)


    strComputer = "."
      Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
      Set colFiles = objWMIService.ExecQuery _
       ("SELECT * FROM CIM_DataFile WHERE Extension ='tmp'")
       For Each objFile in colFiles
       objLogFile.WriteLine "ARQUIVO DELETADO : "  & objFile.path &  " deletado em : " & Now
       objFile.delete
       Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    sexta-feira, 11 de setembro de 2009 14:15
  • Cara  eu vi que gerou o relatorio  e tudo de log .
    so que isso apaga arquivo e nao pasta  ...
    igual comentei no topoico  sao pastas  com EXTENSAO TMP ......

    se eu alterar isso
      ("SELECT * FROM CIM_DataFile WHERE Extension ='tmp'")

    para isso
      ("SELECT * FROM CIM_folders WHERE Extension ='tmp'")

    funcionaria ? pq kero apagar somente as pastas .

    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 14:48
  • Olá,


    Não recomendo você utilizar o script para remover a pasta tmp.

    Os arquivos tudo bem, você pode remover os temporários... Agora apagar as pastas, não é uma boa não.


    Utilize o script abaixo, para fazer isso com as pastas dentro do seu diretório "c:\corporeRM\RM FLUXUS"


    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\corporeRM\RM FLUXUS\"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "log.txt"


    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "PASTAS DELETADAS EM: " & now
    objLogFile.WriteLine "==================================================="

    ChecaArquivo strPasta


    wscript.echo "FIM DO SCRIPT"
    wscript.quit




    Sub ChecaArquivo(strSubPasta)

    Set Folder = ObjFSO.GetFolder(strSubPasta)

    For each subFolder in Folder.SubFolders
       ChecaArquivo SubFolder.path
       if SubFolder.name = "TMP" Then
          objLogFile.WriteLine "PASTA DELETADA : "  & subFolder.path &  " deletado em : " & Now
          objFSO.deletefolder(SubFolder.Path)
       End if
    Next


    End sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    sexta-feira, 11 de setembro de 2009 16:44
  • Jesiel , dentro  da estrutura C:\\CorporeRM\Rm fluxus

    eu possuo varios outros arquivos de instalação de log , arquivos exe , bde , que nao pode ser apagados ...
    eu preciso somente apagar essas pastas tmp entendeu ?
    Pq essas pastas sao geradas qdoo o usuario finaliza a seção dele ....
    ai eu queria esse script para rodar ele como tarefa agendada todo dia as  00hrs ...por isso a minha necessidade ....

    se utilizar esse ai ele vai apagar  todo cotenudo dentro da pasta C;\CorporeRM\rm Fluxus ?
    Ou posso utilizar que esta tranquilo ?



    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 17:21
  • Olá,

    Vai apagar somente a pasta TMP

    Essa é a parte que trata:

    if SubFolder.name = "TMP" Then


    Oque você pode fazer pra testar, é remover a linha:

    objFSO.deletefolder(SubFolder.Path)

    E deixar ele gerar o log... assim você consegue testar o script sem deletar nada.

    Se estiver correto você inclui a linha novamente.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    sexta-feira, 11 de setembro de 2009 17:54
  • cara testei e nao funcionou ....  :(

    nao apagou as pastas tmp nao ...
    ___________________ Diego Nogueira diego.nc@hotmail.com
    sexta-feira, 11 de setembro de 2009 18:24
  • Olá,

    Gerou algum erro?

    O arquivo de log gerou alguma informação???

    Descreva a estrutura de pasta para nós:

    C:\CorporeRM\Rm fluxus"

    Dentro desta pasta você tem as pastas TMP,

    Qual é o nome destas pastas?? é TMP??? Então é uma pasta apenas?


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    sexta-feira, 11 de setembro de 2009 18:48

  • isso mesmo ....

    tenho essa estrutura

    C:\CorporeRM\Rm fluxus"

    ai dentro dessa pasta sao criados as pastas com os nomes aleartorio do tipo auahnd.tmp

    sao criado varias pastas TMP .

    ai queria que apagasse isso .
    ___________________ Diego Nogueira diego.nc@hotmail.com
    segunda-feira, 14 de setembro de 2009 23:06
  • Olá,

    Diego, verifique o script abaixo:


    on error resume next
    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\corporeRM\RM FLUXUS\"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "log.txt"


    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "PASTAS DELETADAS EM: " & now
    objLogFile.WriteLine "==================================================="


    Set Folder = ObjFSO.GetFolder(strPasta)

    For each subFolder in Folder.SubFolders
       if instr(SubFolder.name,".tmp") > 0 Then
          objLogFile.WriteLine "PASTA DELETADA : "  & subFolder.path &  " deletado em : " & Now
          objFSO.deletefolder(SubFolder.Path)
       End if
    Next


    wscript.echo "FIM DO SCRIPT"
    wscript.quit



    Até mais,

    Jesiel

    Obs.: Se útil, classifique





    terça-feira, 15 de setembro de 2009 11:25
  • Caro Jesiel;

    Com esse script vou apagar todas as sub pastas que tem dentro da estrutura C:\CorporeRM\ ????
    Nao sei se estou falando besteira ....

    Ou so apagara as pastas que termina em .tmp ???

    ___________________ Diego Nogueira diego.nc@hotmail.com
    terça-feira, 15 de setembro de 2009 23:08
  • Olá,

    Irá apagar as pastas que tem ".tmp" no nome.


    Faça um teste em um ambiente teste.

    Cria uma pasta em um computador: "c:\corporeRM\RM FLUXUS\

    Crie varias pastas conforme o seu ambiente "auahnd.tmp" "duahnd.tmp"


    E execute o script.

    Poste os resultados.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quarta-feira, 16 de setembro de 2009 12:23
  • FEITO ! vlwwww rolou de maisss jesiel ...Obrigado

    ___________________ Diego Nogueira diego.nc@hotmail.com
    quinta-feira, 17 de setembro de 2009 23:45