我该怎么做?我试过了:
set /p var=""
set var=%var:~3%
echo %var%
例如,如果我键入“Hello World”,它应该回显“lo world”。
抱歉,我太模糊了。该代码实际上不是代码,但这是:
@echo off
setlocal EnableDelayedExpansion
set /p file=""
set cnt=0
for /F "delims=" %%j in (%file%.txt) do (
set /A cnt+=1
set line!cnt!=%%j
)
set cde=0
:code
set /a cde+=1
set line=!line%cde%!
if %line:~0,9% == err echo.%line:~3%
goto code
我只是想让它更短,但仍然显示错误。
答案 0 :(得分:8)
我只是尝试过它,它就像你期望的那样工作。你有什么收获?
C:\>type test.bat
set /p var=""
set var=%var:~3%
echo %var%
C:\>test
C:\>set /p var=""
Hello World
C:\>set var=lo World
C:\>echo lo World
lo World
C:\>
所以 - 看起来你可能需要两件事:
1)来自第二个循环的某种退出条件。命中匹配条件时:code
标签与goto code
之间(即if %line:~0,3% == err
)
不知道你的代码需要什么,我会放置类似下面的内容
if %line:~0,3% == err echo.%line:~3% & pause & exit
当它找到匹配的行
时,它将暂停并退出2)如果到达线的末尾并且没有匹配,则出现某种退出条件。我怀疑这是导致您看到的错误的原因,因为您的输入文件可能不满足此条件。