Batch file 当前正在使用批处理命令,是否可以指向值表?
我正在使用批处理命令生成mylist.txt文件中的文本列表。例如Batch file 当前正在使用批处理命令,是否可以指向值表?,batch-file,Batch File,我正在使用批处理命令生成mylist.txt文件中的文本列表。例如 \\abc\asd \\def\as \\ghi\as 我目前有一个数据列表(大约2500行),每行有几个值/列,其中包含静态信息(类似于数据库)。该列表当前为csv格式 例如: \\abc\asd 123 home \\def\as 456 office \\ghi\as 789 elsewhere 我需要匹配mylist.txt中的值,并使用它执行批处理命令。我可以知道我该怎么做吗 我在考虑使用函
\\abc\asd
\\def\as
\\ghi\as
我目前有一个数据列表(大约2500行),每行有几个值/列,其中包含静态信息(类似于数据库)。该列表当前为csv格式
例如:
\\abc\asd 123 home
\\def\as 456 office
\\ghi\as 789 elsewhere
我需要匹配mylist.txt中的值,并使用它执行批处理命令。我可以知道我该怎么做吗
我在考虑使用函数,这意味着每个函数都将被命名为变量的一个值
其中一个函数将被称为“\abc\asd”。当mylist.text的值为“\abc\asd”时,将调用该函数
考虑到最终可能会有2500个功能,这是否可行?我想知道这是不是最好的办法。。请告知,谢谢
其他信息(10月12日编辑)
您好,我正在尝试比较文本文件中的行,如果该行与预定义的文本之一匹配,我希望执行批处理/cscript命令。这可能吗 我目前拥有的:
for /f "delims=" %%a in (input.txt) do (
set /a c+=1
set myVariable=%%a
REM if this line contains my predefined string A, execute a cscript command A
if not x%myVariable:prefinedtext1%==x%myVariable% echo theCommandIWantToExecute
REM if this line contains my predefined string B, execute a cscript command B
if not x%myVariable:prefinedtext2%==x%myVariable% echo theSecondCommandIWantToExecute
是的,这是可以做到的,并且对于一些功能来说非常容易。但维护起来会很痛苦,大约2500个功能可能会影响性能 下面是一个简单的示例数据演示
@echo off
for /f "delims=" %%C in (mylist.txt) do call :%%C
echo Done
exit /b
:\\abc\asd 123 home
echo Function 1 (%0) arg1=%1 arg2=%2
exit /b
:\\def\as 456 office
echo Function 2 (%0) arg1=%1 arg2=%2
exit /b
:\\ghi\as 789 elsewhere
echo Function 3 (%0) arg1=%1 arg2=%2
exit /b
--输出---
如果每行的第一个值表示批处理脚本的路径,则可以从调用中删除:
,然后将调用每个批处理脚本。你的主脚本将会很小,并且会表现得更好。但是要跟踪的批处理脚本太多了
@echo off
for /f "delims=" %%C in (mylist.txt) do call %%C
echo Done
exit /b
当您声明CSV时,我假设逗号分隔的值。您确定您的文件用空格分隔值吗?您好,很抱歉响应延迟。我正在尝试为每个函数执行批处理命令。这可能吗?我正在尝试比较文本文件中的行,如果该行与预定义文本之一匹配,我希望执行批处理/cscript命令。这可能吗?我目前拥有的:for/f“delims=“%%a in(input.txt)do(set/a c+=1 set myVariable=%%a REM如果此行包含我的预定义字符串a,则执行cscript命令a如果不是x%myVariable:PrefiedText1%==x%myVariable%echo命令如果此行包含我的预定义字符串B,则执行cscript命令B如果不是x%myVariable:PrefiedText2%==x%myVariable%echo第二条命令I)执行
@echo off
for /f "delims=" %%C in (mylist.txt) do call %%C
echo Done
exit /b