2016-10-04 2 views
0

Nach der Suche um ich dieses Stück Code gefunden, habe ich natürlich änderte sich mit dem Rest meines Code zu arbeiten:Batch-Abstürze, wenn Findstr Befehl ausführen

set /p answ= 

echo.%answ%|findstr /C:":name" >nul 2>&1 && @echo %answ::name=%> Library\user1.lib & pause || echo Not found. & pause & goto chat 

jedoch die Batch-Prompt stürzt ab, wenn dieser Befehl lief. Ich habe eine separate Datei zu testen, was falsch war, aber das scheint gut zu funktionieren und alles, was ich tat, war die Variablen und so ersetzen:

SET /p _test= 

:: For Above: 12345:abcabc 

echo.%_test%|findstr /C:":ab" >nul 2>&1 && @echo %_test::ab=%> Library\user1.lib & pause || echo Not found. & pause 

Gibt es etwas, was ich falsch mache? Gibt es einen anderen Befehl, den ich verwenden kann, um etwas in einer Eingabe zu finden?

+0

Verwenden Sie Klammern und Leerzeichen. Sie können nicht festlegen, dass Variablen in eine Zahl expandieren und keine Leerzeichen um Umleitungszeichen haben. Klammern teilen Fenstern mit, wie Sie Ihre Befehle gruppieren. –

Antwort

0

Ohne Ihren Code zu überprüfen, habe ich einige wichtige Klammern hinzugefügt.

set /p answ= 

echo.%answ%|findstr /C:":name" >nul 2>&1 && (@echo %answ::name=%> Library\user1.lib & pause) || (echo Not found. & pause & goto chat)