Ron*_*Ron 2 windows batch-file
我想从批处理文件中运行一个控制台应用程序.实际上,控制台应用程序是从另一个批处理文件运行 该应用程序可以采用两个命令行参数a和b.它们是文件名.我有两个文件列表,alist.txt和blist.txt,长度相同.我想,如果可能的话,像这样运行批处理:
FOR /F %%a in (alist.txt) %%b in (blist.txt) do runconsolebatch.bat %%a %%b
Run Code Online (Sandbox Code Playgroud)
但这不起作用.当我运行它时,我得到"%b此时出乎意料."
如果我以某种方式嵌套它们,那就行不通了.我可以将两个文件列表加入一个文件......就像这样?
file1A file2A
file1B file2B
Run Code Online (Sandbox Code Playgroud)
但我不确定如何将file1A分配给%a和file1B分配给%b,或者如果可能的话.
2015年4月12日:我认为这已经解决了.我甚至使用了我认为正确的批处理文件,但它不起作用.我现在得到的是第一个输出线是正确的,其余的是这样的:
第一行正常工作.但即使DIR.TXT文件有5个条目且NAMES.TXT文件有3个条目,我只能再获得两行.这应该是15行输出.其余的输出是这样的:
G:\test>(
set /p "valueA="
runconsolebatch.bat !valueA! name1.txt
)
Command line: in=!valueA! name1.txt
failure validating G:\test\source\!VALUEA!: file may not be correctly specified or doesn't exist.
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的批处理文件:
@echo off
setlocal enableextensions enabledelayedexpansion
<"dir2.txt" (
for /f "usebackq delims=" %%b in ("names.txt") do (
set /p "valueA="
runconsolebatch.bat !valueA! %%b
)
)
Run Code Online (Sandbox Code Playgroud)
如果我改变runconsolebatch.bat回声,我得到
echo !valueA! %%b
Run Code Online (Sandbox Code Playgroud)
我得到三行输出:dir2.txt中的第一行和names.txt中的第一行,第二行和第二行以及第三行和第三行.
出于某种原因,虽然这种方法曾经有效,但现在还没有.这是我的批处理文件:
@echo off
setlocal enableextensions enabledelayedexpansion
<"blist.txt" (
for /f "usebackq delims=" %%b in ("alist.txt") do (
set /p "valueA="
echo !valueA! %%b
)
)
Run Code Online (Sandbox Code Playgroud)
blist.txt是
1111
2222
3333
4444
Run Code Online (Sandbox Code Playgroud)
和alist.txt是
AAAA
BBBB
CCCC
Run Code Online (Sandbox Code Playgroud)
但批处理文件的输出是:
1111 AAAA
2222 BBBB
3333 CCCC
Run Code Online (Sandbox Code Playgroud)
什么时候应该
1111 AAAA
1111 BBBB
Run Code Online (Sandbox Code Playgroud)
等等
毫无疑问,这是一个愚蠢的错字但是......什么?这也只是在常规用户命令shell中运行.
Blist.txt使用for循环和AList.txt文件输入重定向和set /p命令读取.
@echo off
setlocal enableextensions enabledelayedexpansion
<"Alist.txt" (
for /f "usebackq delims=" %%b in ("Blist.txt") do (
set /p "valueA="
echo !valueA! %%b
)
)
Run Code Online (Sandbox Code Playgroud)
对于问题中指出的值,这应该有效.有问题的字符或长度超过1021个字符的行应该需要aditional代码.