Не удается подключиться к беспроводной сети с помощью cmd

414
Xlam

Я пытаюсь подключить телефон к компьютеру через FTP и открыть FTP с помощью проводника Windows, используя cmd.

Ниже приведены коды:

@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 

Я сохраняю эти коды в командном файле, и когда я запускаю командный файл, cmd открывается на миллисекунду или около того и затем закрывается, я имею в виду, что окно cmd просто мигает в течение нескольких миллисекунд, и ничего не происходит. Не установлено соединение или что-то еще.
Коды работают нормально без команды "findstr". Я не могу удалить эту команду, так как очень важно проверить состояние сети.

1
Что происходит с CMD, когда вы помещаете «; pause» в конец вашего пакетного файла? («пауза> NUL» не работает для вас.) Ultrasonic54321 6 лет назад 0
@ Ultrasonic54321 Я добавил '; пауза', в конце происходит то же самое, то есть мигание окна. Не заметил никаких изменений. Xlam 6 лет назад 0
Тогда очевидно, что findstr не находит строку в выводе ipconfig. Также ваш собеседник сказал, что вы пытаетесь установить ftp со своего телефона на рабочий стол, но все будет наоборот (вы установили на свой телефон ftp-сервер?). psusi 6 лет назад 0
@psusi Когда я напрямую набираю ipconfig и нажимаю клавишу ввода в окне cmd, когда мой компьютер подключен к телефону, я вижу IP-адрес в выходных данных. Проблема возникла только при запуске его из командного файла вместе с другими кодами. В любом случае, проблема, похоже, заключается в «вложенном if-else», которое я использовал в своем коде. Если вложенный if-else заменяется на 'goto', коды работают нормально. См. Ответ Ultrasonic54321 Xlam 6 лет назад 0

1 ответ на вопрос

1
Ultrasonic54321

Попробуйте этот код (отредактированный для улучшения модульности для будущих пользователей и немного улучшенный код для лучшего взаимодействия с пользователем):

@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 

В случае, если код выше не работает, оригинальный код (который работает в соответствии с OP с некоторыми косметическими изменениями) ниже.

@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 
Я бы отредактировал ваш код, чтобы сделать его более модульным, но сейчас я не за компьютером. Ultrasonic54321 6 лет назад 0
Используя ваш код, устройство успешно подключается, но не открывает Windows Explorer, как следует с вашими кодами. Я не могу понять, почему его не открывают Xlam 6 лет назад 0
Ой, подожди сейчас, когда он открывается. Не знаю, что пошло не так в то время. Спасибо Xlam 6 лет назад 0

Похожие вопросы