Ciao a tutti,
ho un programma scritto in vb.net, ho la necessità di avviarlo all'avvio del pc. Dunque creo un file .bat che vado a copiare nella cartella di avvio automatico, questa è la sintassi del file .bat:
codice:
@echo off
timeout 15 >nul 2>nul
IF EXIST "%appdata%\Microsoft\Windows\Start Menu\Programs\Gestione Commesse 4.0\Gestione Commesse 4.0.appref-ms" ("%appdata%\Microsoft\Windows\Start Menu\Programs\Gestione Commesse 4.0\Gestione Commesse 4.0.appref-ms") ELSE (start /b "" cmd /c del "%~f0"&exit /b)
Il tutto è perfettamente funzionante se il prompt dei comandi non mi rispondesse che "echo off" è un comando non riconosciuto, apparentemente sembra che ci sia un carattere "fantasma" davanti a tutta la stringa, come vedete nell'immagine. (se tolgo o metto la @ non cambia nulla, l'errore persiste).
Immagine.jpg
il codice vb con cui creo il file bat è questo:
codice:
Dim app_dir_generica As String = "%appdata%\Microsoft\Windows\Start Menu\Programs\Gestione Commesse 4.0\Gestione Commesse 4.0.appref-ms"
Dim startup_dir_generica As String = "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup"
Dim app_dir As String
Dim startup_dir As String
app_dir = Environment.ExpandEnvironmentVariables(app_dir_generica)
startup_dir = Environment.ExpandEnvironmentVariables(startup_dir_generica)
Dim bat As String = "@echo off" & vbCrLf & "timeout 15 >nul 2>nul" & vbCrLf & "IF EXIST " & Chr(34) & app_dir_generica & Chr(34) & " (" & Chr(34) & app_dir_generica & Chr(34) & ") ELSE (start /b " & Chr(34) & Chr(34) & " cmd /c del " & Chr(34) & "%~f0" & Chr(34) & "&exit /b)"
My.Computer.FileSystem.WriteAllText(startup_dir & "\Gestione Commesse.bat", bat, False)
Il codice del file bat funziona se eseguito riga per riga manualmente dalla console, ma se eseguo direttamente il .bat completo da quell'errore.
Sapete aiutarmi?
grazie