2016-10-21 5 views
0

Ich habe Probleme mit meiner Batch-Datei. Ich versuche BGInfo zu verwenden, um die Benutzer-IP-Adresse auf ihrem Desktop anzuzeigen. Mein Code ist:"Die Syntax des Befehls ist falsch" Probleme

If Not Exist "C:\Users\%username%\Information" 
(
    copy "\\heartbeat\shared\Information\bginfo.exe" "C:\Users\%username%\bginfo.exe"  
    copy "\\heartbeat\shared\Information\display.bgi" "C:\Users\%username%\display.bgi" 
) 
C:\Users\%username%\bginfo.exe "C:\Users\%username%\display.bgi" /timer:0 

Mir wird gesagt, dass die Syntax der IF-Anweisung falsch ist. Nicht sicher, was das Problem ist.

+7

Verschieben Sie die Klammern nach oben: 'Wenn nicht vorhanden "C: \ Users \% username% \ Information"(' – Squashman

+0

Und Sie sollten '% userprofile% verwenden' statt 'C : \ Users \% username% 'da sich das Profilverzeichnis des Benutzers auf einem anderen Laufwerk als Laufwerk' C: 'befinden kann und sich auch in einem anderen Verzeichnis als' Users' befinden kann .__USERPROFILE__ ist eine vordefinierte Umgebungsvariable mit Pfad zum Benutzerhaus Verzeichnis, siehe [Windows-Umgebungsvariablen] (https://en.wikipedia.org/wiki/Environment_variable#Windows). Und in der letzten Zeile Ihres Codes verwenden Sie "% userprofile% \ bginfo.exe" 'mit umgebenden doppelten Anführungszeichen als Benutzerkontoname im Pfad könnte auch ein Leerzeichen enthalten. – Mofi

Antwort

0

Try this:

@Echo Off 
If Not Exist "%UserProfile%\Information\" MD "%UserProfile%\Information" 
If Not Exist "%UserProfile%\Information\bginfo.exe" (
    Copy "\\heartbeat\shared\Information\bginfo.exe" "%UserProfile%\Information") 
If Not Exist "%UserProfile%\Information\display.bgi" (
    Copy "\\heartbeat\shared\Information\display.bgi" "%UserProfile%\Information") 
Start "" /D"%UserProfile%\Information" bginfo.exe display.bgi /timer:0 /nocliprompt /silent 
Verwandte Themen