Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 如何创建从文本文件中获取2个参数的批处理文件_Batch File_Cmd - Fatal编程技术网

Batch file 如何创建从文本文件中获取2个参数的批处理文件

Batch file 如何创建从文本文件中获取2个参数的批处理文件,batch-file,cmd,Batch File,Cmd,我试图创建一个批处理文件,该文件从txt文件中获取两个参数,然后将这两个参数作为参数传递给函数 我应该使用for循环,因为文本文件的每一行都包含这两个参数 这是我到现在为止得到的 @echo off for /F "tokens=* EOL=# delims=" %%D in (C:\Users\ba\Desktop\New folder (3)\r.txt) do call:myd "%%~D" "%%~D" 首先,您需要在文件名中使用引号,因为它有空格。但是引号对/f的有特殊的意义,因此

我试图创建一个批处理文件,该文件从txt文件中获取两个参数,然后将这两个参数作为参数传递给函数

我应该使用for循环,因为文本文件的每一行都包含这两个参数

这是我到现在为止得到的

@echo off
for /F  "tokens=* EOL=# delims=" %%D in (C:\Users\ba\Desktop\New folder (3)\r.txt) do call:myd "%%~D" "%%~D"

首先,您需要在文件名中使用引号,因为它有空格。但是引号对/f的
有特殊的意义,因此您需要使用
usebackq
指令

第二,您告诉它获取所有令牌(
tokens=*
)而不使用分隔符(
delims=
),基本上是整行。但是您需要传递两个参数。假设您的文件包含一个类似于
param1 param2
的列表,则需要使用空格作为分隔符,并获取标记1和标记2

最后,您需要将第二个参数引用为
%%E
,因为它紧跟在
%%D
之后

尝试:


首先,您需要在文件名中使用引号,因为它有空格。但是引号对/f的
有特殊的意义,因此您需要使用
usebackq
指令

第二,您告诉它获取所有令牌(
tokens=*
)而不使用分隔符(
delims=
),基本上是整行。但是您需要传递两个参数。假设您的文件包含一个类似于
param1 param2
的列表,则需要使用空格作为分隔符,并获取标记1和标记2

最后,您需要将第二个参数引用为
%%E
,因为它紧跟在
%%D
之后

尝试:


另一点:要调用另一个批处理文件,请使用
call myd.bat
而不是
call:myd
(尝试调用标签)。在
myd.bat
中,将参数引用为
%1
%2
@Stephan cite:
将这两个参数作为参数传递给函数
不一定意味着一个
外部
批处理函数另一点:要调用另一个批处理文件,请使用
调用myd.bat
而不是
调用:myd
(尝试调用标签)。在
myd.bat
中,将参数引用为
%1
%2
@Stephan cite:
将这两个参数作为参数传递给函数
不一定意味着
外部
批处理函数
@echo off
for /F  "usebackq tokens=1,2 EOL=# delims= " %%D in ("C:\Users\ba\Desktop\New folder (3)\r.txt") do call:myd "%%~D" "%%~E"