2016-08-08 133 views
0

Ich habe eine Installation von Elasticsearch, die seit Monaten gut funktioniert hat aber aus Powershell unerklärlicherweise verschwunden ist. Das einzige, was ich mir vorstellen kann, ist, dass ich Java aktualisiert habe.Das System kann den Pfad/Befehl nicht gefunden Fehler in Powershell

Wenn ich versuche, es führen Sie den vollständigen Pfad mit ich folgende Fehlermeldung erhalten:

PS C:\> C:\elasticsearch\bin\elasticsearch.bat 
The system cannot find the path specified. 

Der Pfad existiert und es gibt keine Rechtschreibfehler, wie Sie hier sehen können:

PS C:\elasticsearch\bin> dir 

    Directory: C:\elasticsearch\bin 

Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----   8/7/2016 10:13 PM   5551 elasticsearch 
-a----   8/7/2016 10:13 PM   104448 elasticsearch-service-mgr.exe 
-a----   8/7/2016 10:13 PM   103936 elasticsearch-service-x64.exe 
-a----   8/7/2016 10:13 PM   80896 elasticsearch-service-x86.exe 
-a----   8/7/2016 10:13 PM   909 elasticsearch.bat 
-a----   8/7/2016 10:13 PM   3307 elasticsearch.in.bat 
-a----   8/7/2016 10:13 PM   2814 elasticsearch.in.sh 
-a----   8/7/2016 10:13 PM   2992 plugin 
-a----   8/7/2016 10:13 PM   1303 plugin.bat 
-a----   8/7/2016 10:13 PM   6501 service.bat 

Wenn Ich versuche, es aus dem Verzeichnis selbst auszuführen, bekomme ich die folgende Nachricht:

PS C:\elasticsearch\bin> elasticsearch.bat 
elasticsearch.bat : The term 'elasticsearch.bat' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
again. 
At line:1 char:1 
+ elasticsearch.bat 
+ ~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (elasticsearch.bat:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

Suggestion [3,General]: The command elasticsearch.bat was not found, but does exist in the current location. Windows Pow 
erShell does not load commands from the current location by default. If you trust this command, instead type: ".\elastic 
search.bat". See "get-help about_Command_Precedence" for more details. 

ich don ' t haben eine starke Wissen Powershell Fehler der Handhabung, so habe ich versucht, nur ein paar Dinge:

  1. Elasticsearch Neuinstallieren
  2. dem Hinzufügen zu dem Pfad
  3. Lauf elasticsearch.bat mit dem Befehl enthält elasticsearch.bat ./elasticsearch.bat

Keiner von diesen ändert nichts.

Hier ist der Inhalt von elasticsearch.bat:

@echo off 

SETLOCAL enabledelayedexpansion 
TITLE Elasticsearch 2.3.5 

SET params='%*' 

:loop 
FOR /F "usebackq tokens=1* delims= " %%A IN (!params!) DO (
    SET current=%%A 
    SET params='%%B' 
    SET silent=N 

    IF "!current!" == "-s" (
     SET silent=Y 
    ) 
    IF "!current!" == "--silent" (
     SET silent=Y 
    ) 

    IF "!silent!" == "Y" (
     SET nopauseonerror=Y 
    ) ELSE (
     IF "x!newparams!" NEQ "x" (
      SET newparams=!newparams! !current! 
     ) ELSE (
      SET newparams=!current! 
     ) 
    ) 

    IF "x!params!" NEQ "x" (
     GOTO loop 
    ) 
) 

SET HOSTNAME=%COMPUTERNAME% 

CALL "%~dp0elasticsearch.in.bat" 
IF ERRORLEVEL 1 (
    IF NOT DEFINED nopauseonerror (
     PAUSE 
    ) 
    EXIT /B %ERRORLEVEL% 
) 

"%JAVA_HOME%\bin\java" %JAVA_OPTS% %ES_JAVA_OPTS% %ES_PARAMS% -cp "%ES_CLASSPATH%" "org.elasticsearch.bootstrap.Elasticsearch" start !newparams! 

ENDLOCAL 
+3

Husten die Fehlermeldung „lesen * Vorschlag [3, General]: Der Befehl elasticsearch.bat nicht gefunden wurde, aber in der aktuellen Lage nicht vorhanden ist Windows Powershell nicht. Lade Befehle von der aktuellen Position standardmäßig. Wenn du diesem Befehl vertraust, tippe stattdessen: ". \ elastic search.bat". Siehe "get-help about_Command_Precedence" für weitere Details. "* Keine Ahnung, warum die erste nicht funktioniert Arbeit, möglicherweise etwas in der Batch-Datei verweist auf eine java.exe, die verschoben wurde? Was befindet sich in der Stapeldatei? – TessellatingHeckler

+0

Ich habe tatsächlich den Vorschlag in der Fehlermeldung, d. H. Ausführen. \ Elasticsearch.bat aus dem bin-Verzeichnis und alles, was ich bekomme, ist "Das System kann den angegebenen Pfad nicht finden." Ich werde den Inhalt der obigen .bat-Datei posten. Gib mir einen Moment. – Atlas

Antwort

1
PS C:\> C:\elasticsearch\bin\elasticsearch.bat 
The system cannot find the path specified. 

Sind Sie sicher, das ist nicht die Ausgabe der Batch-Datei? Mit anderen Worten, etwas in der Stapeldatei kann keinen angegebenen Pfad finden (z. B. java.exe). Wenn PowerShell die Datei nicht finden kann, erhalten Sie eine Fehlermeldung wie bei Ihrem zweiten Versuch.

Ihres zweiten Versuch Sprechen:

PS C:\elasticsearch\bin> elasticsearch.bat 

Da die Fehlermeldung besagt, wird dies nicht für Dateien im aktuellen Ordner arbeiten. Sie müssen explizit den aktuellen Ordner angeben:

PS C:\elasticsearch\bin> .\elasticsearch.bat 
+0

Danke. Ich habe den Befehl. \ Elasticsearch.bat versucht, der eine Pfadnachricht nicht gefunden hat. Also vielleicht ist dein erster Vorschlag auf das Ziel gerichtet. Ich habe den Inhalt der obigen .bat-Datei gepostet. Ich habe keine Erfahrung beim Lesen dieser Dateien. Sind die Gegenstände ganz unten das Problem, vielleicht? – Atlas

+0

Ja, du hattest Recht. Elasticsearch.bat konnte Java nicht finden, nachdem ich Letzteres aktualisiert habe. In der .bat-Datei am Ende meiner Frage habe ich "% JAVA_HOME% \ bin \ java" in "C: \ Programme (x86) \ Java \ jre1.8" geändert.0_101 \ bin \ java "und es funktioniert jetzt. – Atlas