我尝试通过 FTP 将我的手机连接到我的电脑,然后使用 cmd 通过 Windows 资源管理器打开 FTP。
以下是代码:
@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
尝试此代码(编辑以提高未来用户的模块化,并稍微改进代码以获得更好的用户体验):
@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