EXECUTAR SHELL COMANDOS DOS
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
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.
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()
Citação::
colega diminuindo seu códigoPrivate 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.
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
Citação::
é eu tinha esquecido, tente issoPrivate 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