Usuário com melhor resposta
Scripts pastas TMP

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
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
- Marcado como Resposta Jesiel S. Pereira sexta-feira, 18 de setembro de 2009 00:20
Todas as Respostas
-
-
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 -
-
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
-
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 -
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
-
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 -
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
-
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 -
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
-
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 -
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
-
-
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
-
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 -
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
-
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 -
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
- Marcado como Resposta Jesiel S. Pereira sexta-feira, 18 de setembro de 2009 00:20
-