Es kann keine Verbindung zu einem drahtlosen Netzwerk mithilfe von cmd hergestellt werden

516
Xlam

Ich versuche, mein Telefon über FTP mit meinem PC zu verbinden und FTP mit Windows Explorer unter Verwendung der Cmd zu öffnen.

Unten sind die Codes:

@echo off  echo Setup connection to ftp 192.168.43.1  ipconfig | findstr /I "192.168.43.1" :: Opens ipconfig and searches for string "192.168.43.1" in the output of ipconfig to check if 192.168.43.1 is connected  if %errorlevel% == 0 (  echo Connection set %windir%\explorer.exe ftp://192.168.43.1:8888/  ) else (  echo Connection not set  echo Setting up connection...  netsh wlan connect name="sdc-yayjg" :: "sdc-yayjg" is the host name of 192.168.43.1 timeout 3 > NUL  echo Opening ftp 192.168.43.1 ipconfig | findstr /I "192.168.43.1"  if %errorlevel% == 0 (  echo Connection set %windir%\explorer.exe ftp://192.168.43.1:8888/  ) else (  echo FAIL: Connection not set.  echo Press any key to exit.  pause > NUL 

Ich speichere diese Codes in einer Batch-Datei und wenn ich die Batch-Datei starte, öffnet sich cmd für eine Millisekunde oder so und endet dann. Ich meine, das Cmd-Fenster blinkt nur für ein paar Millisekunden und nichts passiert. Es ist keine Verbindung eingerichtet oder was auch immer.
Die Codes funktionieren auch ohne den Befehl "findstr". Ich kann diesen Befehl nicht entfernen, da es sehr wichtig ist, den Netzwerkstatus zu überprüfen.

1
Was passiert mit CMD, wenn Sie am Ende Ihrer Batchdatei "; pause" platzieren? ("Pause> NUL" scheint für Sie nicht zu funktionieren.) Ultrasonic54321 vor 6 Jahren 0
@ Ultrasonic54321 Ich fügte '; pause' hinzu, am Ende passiert dasselbe, dh das Fenster blinkt. Ich habe keine Änderungen bemerkt. Xlam vor 6 Jahren 0
Dann findet findstr offensichtlich nicht die Zeichenfolge in der ipconfig-Ausgabe. Ihr Betreffender sagte auch, dass Sie versuchen, von Ihrem Telefon auf Ihren Desktop zu ftp, aber dies würde andersherum gehen (haben Sie einen FTP-Server auf Ihrem Telefon installiert?). psusi vor 6 Jahren 0
@psusi Wenn ich direkt ipconfig eingebe und in einem cmd-Fenster die Eingabetaste drücke, wenn mein PC mit meinem Telefon verbunden ist, sehe ich die IP-Adresse in der Ausgabe. Das Problem trat nur auf, wenn es zusammen mit den anderen Codes aus der Batchdatei ausgeführt wurde. Jedenfalls scheint das Problem mit dem "verschachtelten Wenn-sonst" zu sein, das ich in meinem Code verwendet habe. Wenn das verschachtelte if-else durch "goto" ersetzt wird, funktionieren die Codes gut. Siehe die Antwort von Ultrasonic54321 Xlam vor 6 Jahren 0

1 Antwort auf die Frage

1
Ultrasonic54321

Probieren Sie diesen Code aus (bearbeitet zur Verbesserung der Modularität für zukünftige Benutzer und etwas verbesserter Code für eine bessere Benutzererfahrung):

@echo off goto setup :setup title FTP Connection w/ network support   SET "FTP=192.168.43.1" :: Location of the FTP server  SET "FTPPORT=8888" :: The FTP server's port  SET "WIRELESS=sdc-yayjg" :: The network where the FTP server resides  SET "TRIES=0" :: Please do not tamper with.  SET "MAXTRIES=3" :: How many tries before failure  SET "TIMETOCONNECT=3" :: How much time to give to connect to the network  echo Setting up connection to FTP %FTP%... goto check1 :check1 if %TRIES% LSS %MAXTRIES% ( SET /A "TRIES=TRIES+1" goto check2 ) else ( goto Fail ) :check2 echo Checking for FTP Server presence... ipconfig | findstr /I "%FTP%" :: Opens ipconfig and searches for %FTP%. (in this case it's "192.168.43.1") in the output of ipconfig to check if 192.168.43.1 is connected  if %errorlevel% EQU 0 (  goto 0 ) else (  echo Presence not found. Assuming connection not set... goto 1 ) :1 echo Connection not set after %TRIES% times. echo Setting up connection...  netsh wlan connect name="%WIRELESS%" :: This script assumes that WIRELESS (sdc-yayjg) houses the IP (192.168.43.1) timeout %TIMETOCONNECT% > NUL  goto check1 :Fail echo FAIL: Connection not set after %MAXTRIES% tries.  echo Press any key to exit.  pause > NUL exit ) :0 echo Internet Connection set - Connecting to FTP via Windows Explorer... %windir%\explorer.exe ftp://%FTP%:%FTPPORT%/  echo Connection Sucessful. Windows Explorer should now open... echo Press any key to close this window. pause > NUL exit 

Falls der obige Code nicht funktioniert, ist der ursprüngliche Code (der gemäß OP mit einigen kosmetischen Änderungen funktioniert) unten aufgeführt.

@echo off  echo Setting up connection to FTP 192.168.43.1... goto Check :check ipconfig | findstr /I "192.168.43.1" :: Opens ipconfig and searches for 192.168.43.1 in the output of ipconfig to check if 192.168.43.1 is connected  if %errorlevel% == 0 (  goto 0 ) else (  goto 1  ) :: Close your if statements! :1 echo Connection not set  echo Setting up connection...  netsh wlan connect name="sdc-yayjg" :: "sdc-yayjg" is the host name of 192.168.43.1 timeout 3 > NUL  echo Opening ftp 192.168.43.1 ipconfig | findstr /I "192.168.43.1"  if %errorlevel% == 0 (  goto 0 ) else (  echo FAIL: Connection not set after three tries.  echo Press any key to exit.  pause > NUL :: Close your if statements! exit ) :0 echo Internet Connection set - Connecting to FTP via Windows Explorer... %windir%\explorer.exe ftp://192.168.43.1:8888/  exit 
Ich würde Ihren Code bearbeiten, um ihn modularer zu machen, aber ich bin momentan nicht an meinem Computer. Ultrasonic54321 vor 6 Jahren 0
Mit Ihrem Code stellt das Gerät eine erfolgreiche Verbindung her, öffnet jedoch den Windows Explorer nicht wie gewünscht mit Ihren Codes. Ich kann nicht herausfinden, warum es nicht öffnet Xlam vor 6 Jahren 0
Oh warte jetzt, es öffnet sich. Weiß nicht, was damals schief gelaufen ist. Vielen Dank Xlam vor 6 Jahren 0