删除批处理文件中var中的前3个字符?

BBM*_*225 9 batch-file

我该怎么做呢?我试过了:

set /p var=""
set var=%var:~3%
echo %var%
Run Code Online (Sandbox Code Playgroud)

例如,如果我键入"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
Run Code Online (Sandbox Code Playgroud)

我只是想让它更短,仍然显示错误.

Ste*_*der 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:\>
Run Code Online (Sandbox Code Playgroud)

所以 - 看起来你可能需要两件事:1)你的第二个循环中的某种退出条件.在匹配条件被命中时:code标签和goto codefor 之间(即if %line:~0,3% == err),不知道你的代码需要什么,我会放置如下的内容

if %line:~0,3% == err echo.%line:~3% & pause & exit
Run Code Online (Sandbox Code Playgroud)

这将在找到匹配的行时暂停并退出

2)如果到达线的末端并且没有匹配,则出现某种退出条件.我怀疑这是导致您看到的错误的原因,因为您的输入文件可能不满足此条件.