EXECUTAR SHELL COMANDOS DOS

PEDRO86 01/09/2014 22:22:50
#440843
Olá. Galera!!

Estou tentando Criar um Programa que Limpe os Arquivos Temporários do Sistema e Internet Explorer, conforme cada comando são executados a Barra de Progresso aumenta. O problema é o seguinte percebo que somente o Comando1 é executado e o restante não assim como a Barra de Progresso, alguém poderia me ajudar? Não sou programador nem pretendo ser kkkkkkkkk :D só queria uma forçinha dos profissionais... Valeuu!!

Citação:


Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
[ô] VARIAVEIS COMANDO

Dim Comando0 As String
Dim Comando1 As String
Dim Comando2 As String
Dim Comando3 As String
Dim Comando4 As String
Dim Comando5 As String
Dim Comando6 As String

[ô] ESPECIFICACAO DA LINHA DE COMANDO

[ô]Tempo de Espera
Comando0 = [Ô]ping -n 5 localhost[Ô]

[ô] Limpa Temp do Usuario Presente
Comando1 = [Ô]DEL /S /Q /F %TEMP%\*.*[Ô]

[ô] Limpa Temp do Internet Explorer
Comando2 = [Ô]DEL /S /Q /F %Userprofile%\Configurações locais\Temporary Internet Files\*.*[Ô]

[ô] Limpa Recent do Usuario Presente
Comando3 = [Ô]DEL /S /Q /F %userprofile%\Recent\*.*[Ô]

[ô] Limp Tem do Sistema
Comando4 = [Ô]DEL /F/S/Q %WINDIR%\*.TMP[Ô]
Comando5 = [Ô]DEL /F/S/Q %WINDIR%\TEMP\*.*[Ô]
Comando6 = [Ô]DEL /F/S/Q %WINDIR%\Prefetch\*.*[Ô]



[ô] *************** COMANDOS ********************
Label1.Text = [Ô]INICIANDO VARREDURA![Ô]
ProgressBar1.Value = 5
Shell([Ô]cmd.exe /c[Ô] & Comando0, AppWinStyle.Hide)

Label1.Text = [Ô]Limpando TEMP do Usuario Presente[Ô]
ProgressBar1.Value = 10
Shell([Ô]cmd.exe /c[Ô] & Comando1, AppWinStyle.Hide)

Label1.Text = [Ô]Limpando TEMP do Internet Explorer[Ô]
ProgressBar1.Value = 25
Shell([Ô]cmd.exe /c[Ô] & Comando2, AppWinStyle.Hide)

Label1.Text = [Ô]Limpando Recent do Usuario Presente[Ô]
ProgressBar1.Value = 45
Shell([Ô]cmd.exe /c[Ô] & Comando3, AppWinStyle.Hide)

Label1.Text = [Ô]Limpando TEMP do Sistema Operacional[Ô]
ProgressBar1.Value = 75
Shell([Ô]cmd.exe /c[Ô] & Comando4, AppWinStyle.Hide)

ProgressBar1.Value = 90
Shell([Ô]cmd.exe /c[Ô] & Comando5, AppWinStyle.Hide)

ProgressBar1.Value = 100
Shell([Ô]cmd.exe /c[Ô] & Comando6, AppWinStyle.Hide)

If ProgressBar1.Value = 100 Then
Label1.ForeColor = Color.Green
Label1.Text = [Ô]SUCESSO![Ô]
End If

End Sub

TUNUSAT 02/09/2014 10:23:34
#440853
PEDRO86,

Rapidamente...
... a partir do segundo comando seria melhor você criar um arquivo Batch (.BAT) e depois disparar este arquivo (pode até ter um [Ô]menu[Ô] se você quiser.

============================================

Introdução a arquivos .BAT e programação em lotes
http://www.devmedia.com.br/introducao-a-arquivos-bat-e-programacao-em-lotes/24800

============================================

Criar arquivos de comando em Batch
http://pt.kioskea.net/faq/3146-criar-arquivos-de-comando-em-batch

============================================

Criando arquivos .bat [HD] - YouTube
https://www.youtube.com/watch?v=6qBRWxXfKOQ

============================================

Aprenda como fazer um menú em .bat
https://www.youtube.com/watch?v=jaBhd9x-vXo

============================================

Batch
http://pt.wikipedia.org/wiki/Batch

============================================

COMO CRIAR UM ARQUIVO .BAT
http://gambiarrista.blogspot.com.br/2013/09/como-criar-um-arquivo-bat.html

============================================

[][ô]s,
Tunusat.
MARCELO.TREZE 02/09/2014 19:25:20
#440886
Resposta escolhida
colega diminuindo seu código

Private Sub ExecutarComando()
Dim arrayCommandos() As String = {[Ô]ping -n 5 localhost[Ô], [Ô]DEL /S /Q /F %TEMP%\*.*[Ô], [Ô]DEL /S /Q /F %Userprofile%\Configurações locais\Temporary Internet Files\*.*[Ô], [Ô]DEL /S /Q /F %userprofile%\Recent\*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%\*.TMP[Ô], [Ô]DEL /F/S/Q %WINDIR%\TEMP\*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%\Prefetch\*.*[Ô]}
For Each str As String In arrayCommandos
Shell([Ô]cmd.exe /c [Ô] & str)
Next
End Sub


em um botão coloque

ExecutarComando()
PEDRO86 02/09/2014 23:14:26
#440897
Citação:

:
colega diminuindo seu código

Private Sub ExecutarComando()
Dim arrayCommandos() As String = {[Ô]ping -n 5 localhost[Ô], [Ô]DEL /S /Q /F %TEMP%*.*[Ô], [Ô]DEL /S /Q /F %Userprofile%Configurações locaisTemporary Internet Files*.*[Ô], [Ô]DEL /S /Q /F %userprofile%Recent*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%*.TMP[Ô], [Ô]DEL /F/S/Q %WINDIR%TEMP*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%Prefetch*.*[Ô]}
For Each str As String In arrayCommandos
Shell([Ô]cmd.exe /c [Ô] & str)
Next
End Sub


em um botão coloque

ExecutarComando()



Pô!! Obrigado, Marcelo... como posso indicar ao usuario que todos os comandos já foram executados? consigo colocar uma progress bar tbem?

Valeu!! Abraços.
MARCELO.TREZE 02/09/2014 23:25:34
#440898
é eu tinha esquecido, tente isso

Private Sub ExecutarComando()
Dim Cont As Integer = 0
Dim arrayCommandos() As String = {[Ô]ping -n 5 localhost[Ô], [Ô]DEL /S /Q /F %TEMP%*.*[Ô], [Ô]DEL /S /Q /F %Userprofile%Configurações locaisTemporary Internet Files*.*[Ô], [Ô]DEL /S /Q /F %userprofile%Recent*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%*.TMP[Ô], [Ô]DEL /F/S/Q %WINDIR%TEMP*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%Prefetch*.*[Ô]}
For Each str As String In arrayCommandos
ProgressBar1.Value = Cont
Shell([Ô]cmd.exe /c [Ô] & str)
Cont = Cont + 12.5

Next
End Sub
PEDRO86 02/09/2014 23:58:46
#440899
Citação:

:
é eu tinha esquecido, tente isso

Private Sub ExecutarComando()
Dim Cont As Integer = 0
Dim arrayCommandos() As String = {[Ô]ping -n 5 localhost[Ô], [Ô]DEL /S /Q /F %TEMP%*.*[Ô], [Ô]DEL /S /Q /F %Userprofile%Configurações locaisTemporary Internet Files*.*[Ô], [Ô]DEL /S /Q /F %userprofile%Recent*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%*.TMP[Ô], [Ô]DEL /F/S/Q %WINDIR%TEMP*.*[Ô], [Ô]DEL /F/S/Q %WINDIR%Prefetch*.*[Ô]}
For Each str As String In arrayCommandos
ProgressBar1.Value = Cont
Shell([Ô]cmd.exe /c [Ô] & str)
Cont = Cont + 12.5

Next
End Sub




Valeu Marcelo!!! Funcionou... Obrigado
Tópico encerrado , respostas não são mais permitidas