Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 是否删除批处理文件中var中的前3个字符?_Batch File - Fatal编程技术网

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请不要忘记接受您提出的每个问题的答案