Batch file 是否删除批处理文件中var中的前3个字符?
我该怎么做?我试过:Batch file 是否删除批处理文件中var中的前3个字符?,batch-file,Batch File,我该怎么做?我试过: 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
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
我只是想把它缩短一些,但仍然显示出错误。我只是尝试了一下,它的工作原理与您预期的一样。你得到了什么
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
标签和转到code
之间(即如果%line:~0,3%==err
)
由于不知道您的代码需要什么,我将放置如下内容
if %line:~0,3% == err echo.%line:~3% & pause & exit
当找到匹配行时,将暂停并退出
2) 如果你到达终点,没有对手,某种退出条件。我怀疑这就是导致您看到的错误的原因,因为您的输入文件可能不满足此条件。这不是确切的代码。。。这只是一个例子。等一下,我要试试。这里
如果%line:~0,3%==err echo。%line:~3%>>%file%.bat“
这是我遇到错误的地方。我想您可能遇到了错误,因为您的代码正在逐行读取输入文件的内容,然后它正在循环检查错误。问题是你的代码从不停止。它一直在循环,这就是它抛出错误的原因——可能像#line:~3在这个时候是意外的。它告诉您您正在尝试处理一条不存在的行。你需要一个退出条件。我很想帮你,但是你还没有明确说明你希望代码做什么。太好了@VDgames请不要忘记接受您提出的每个问题的答案