将1行文本文件中的行写入新文本文件,不包括前18个字符

时间:2017-01-25 19:50:58

标签: batch-file text copy output

我搜索了很多地方,似乎无法找到解决问题的方法。我有一个包含以下行的.bat文件:

rasdial" TEST VPN"用户名密码

我想只将用户名和密码复制到新的文本文件中,以便它只有:

用户名密码

我在搜索过程中找到的所有内容都恰恰相反,请留下:

rasdial" TEST VPN"

任何帮助将不胜感激。我很确定这很容易,但我无法自行解决。

提前致谢!

这是我目前所拥有的:

@echo off
setlocal disableDelayedExpansion
set "ln1="

>"%USERPROFILE%\Desktop\credentials.txt" (
    for /f "useback delims=" %%A in ("%USERPROFILE%\AppData\Roaming\Project Resources Group\PRG Connect\AutoKeepVPNAlive.bat") do (
      if defined ln1 (
        set "ln2=%%A"
        setlocal enableDelayedExpansion
        echo(!ln1!
        endlocal
        set "ln1="
      )
      for /f %%B in ("%%A") do if "%%B"=="rasdial" set "ln1=%%A"~18%
    )
  )

AutoKeepAliveVPN.bat的内容是:

TITLE TEST Connect
@ECHO OFF

:loop
cls
set ip3=10.12.0.254
ping -n 1 %ip3% | find "Reply from %ip3%: bytes="
if %ERRORLEVEL%==0 (
    goto loop2
) else (
    goto connect
)

:loop2
cls
timeout 30
set ip1=google.com
ping -n 1 %ip1% | find "Lost = 0"
if not %ERRORLEVEL%==0 (
    goto loop2
) else (
    goto loop
)

:connect
cls
rasdial "TEST VPN" username password
if %ERRORLEVEL%==623 (
    goto setup
) else (
    net use P: "\\10.12.0.254\share"
    goto loop
)

:setup
cls
CALL "%USERPROFILE%\AppData\Roaming\Project Resources Group\PRG Connect\VPN Setup.bat"
exit

1 个答案:

答案 0 :(得分:1)

这是一种更简单的方法来完成你需要做的事情。

@echo off
for /f "delims=" %%G in ('findstr /B /I /C:"rasdial" "%USERPROFILE%\AppData\Roaming\Project Resources Group\PRG Connect\AutoKeepVPNAlive.bat"') do SET var=%%G
(echo %var:~18%)>>"%USERPROFILE%\Desktop\credentials.txt"