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
Batch file 如何在具有多行的.txt文件上使用字符串操作_Batch File - Fatal编程技术网

Batch file 如何在具有多行的.txt文件上使用字符串操作

Batch file 如何在具有多行的.txt文件上使用字符串操作,batch-file,Batch File,我的目标是将字符串分配给每个变量,每个字符串来自不同的行(来自txt文件) txt的示例: 1 2 3 我尝试通过使用for命令将txt文件的type输出赋值给一个变量 FOR /F "delims=" %%i IN ('type "textfile.txt"') DO set testingVariable=%%i %测试变量%时,我尝试了如下字符串操作 set newVariable=%testingVariable:~3,1% 我希望结果是2,我得到的唯一结果是所有3个数字都是0,或

我的目标是将字符串分配给每个变量,每个字符串来自不同的行(来自txt文件)

txt的示例:

1
2
3
我尝试通过使用for命令将txt文件的
type
输出赋值给一个变量

FOR /F "delims=" %%i IN ('type "textfile.txt"') DO set testingVariable=%%i
%测试变量%时,我尝试了如下字符串操作

set newVariable=%testingVariable:~3,1%
我希望结果是
2
,我得到的唯一结果是所有3个数字都是0,或者什么都没有

有没有简单的解决办法


(如果可能的话,尽量多解释,因为我还是个初学者)

你想把每一行都分成一个单独的变量吗?您需要一个柜台:

setlocal enabledelayedexpansion
set c=0
FOR /F "delims=" %%i IN ('type "textfile.txt"') DO (
  set /a c+=1
  set testingVariable[!c!]=%%i
)
set testingvariable[
。。。你需要


注意:emty行被跳过

您能解释一下enabledelayedexpansion在这里做了什么,以及我为什么需要它吗?因为正如我所说的,我是一个初学者,我不理解延迟扩展的功能以及我为什么需要它。下面是一个简短的描述。如果你想要更深入的了解,请查看评论中的链接。应该足够让你的头冒烟了。我可以问一下为什么最后一行以方括号结尾吗?只是一种习惯<代码>设置用户显示以
用户
开头的所有变量,如
用户域
用户名
用户档案
set testingvaraible[
显示以
testingvaraible[
开头的所有变量
testingvariable
在没有
[
的情况下应足够唯一,但其他变量(较短)变量名可能不够唯一,因此我使用尽可能多的扩展名称-正如我所说:这只是一个习惯。哦!好的,一开始我没有意识到最后一行实际上是以“testingvariable[”开头列出变量,非常感谢!