2016-12-26 1 views
0

Ich erstelle eine Batch-Datei zum Öffnen der Remote Computer Management Konsole, indem ich die Benutzer ID als Eingabe und den Computernamen aus der 2. Spalte aus der Datei data.csv nehme. Es funktioniert auf Anhieb. Wenn es zurück geht zu: Label starten. und nach anderen Eingaben fragen. es gibt Fehler. Das System kann keine Datei finden ./data.csv Mein CodeBatch File System kann keine Datei nach Loop finden

:start 
    set /p Input="Enter User-ID:" 

    for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
     if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b") 

    ) 
    cls 
    GOTO start 
+0

Warum benutzen Sie 'cmd/C' und' start'? und warum zitierst du die gesamte Befehlszeile? – aschipfl

Antwort

0

Gute Praxis ist die Verwendung% ~ dp0 für Pfade in Batch-Dateien (statt relativer Pfade wie.), Dass die Art und Weise, wenn der aktuelle Arbeitsordner die Datei ändert wird immer gefunden werden.

Also% ändern ~ dp0data.csv

+0

Der Punkt könnte sich auch mit Absicht auf% CD% beziehen. Aber beide sollten sich unterwegs im Code nicht ändern. Einen festen (nicht relativen) Weg zu wählen, ist die bessere Wahl. – LotPings

+1

Waooooooooooo Perfekt Danke, Joe. Fantastisch. –

+0

Lieber ein weiteres Problem. Ich muss es exe-Datei machen. Wenn ich es in exe ändere, funktioniert es nicht. aber wenn geöffnet .bat funktioniert es perfekt. –

0
:start 
set /p Input="Enter User-ID:" 
PUSHD  
for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b") 

) 
POPD 
cls 
GOTO start 

geistige Gesundheit wiedergeben soll, das Verzeichnis schieben sie dann vor dem nächsten Zyklus wiederherzustellen.

Verwandte Themen