Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/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
File 分析文件并调用函数_File_Batch File_If Statement_For Loop_Call - Fatal编程技术网

File 分析文件并调用函数

File 分析文件并调用函数,file,batch-file,if-statement,for-loop,call,File,Batch File,If Statement,For Loop,Call,我写了一个批处理脚本,我有一个小问题 基本上,我有一个带有ip(%ip\U file%)的文件“ip\U file.txt”。 我的脚本解析这个文件,并基于IP调用一个特定的程序 下面是我写脚本的方式,但它不起作用 REM START SCRIPT BASE for /f %%i in (%ip_file%) do ( IF %%a.%%b.==10.10 call :script_1 %%i IF %%a.%%b.==192.168 call :script_2 %%i ) else

我写了一个批处理脚本,我有一个小问题

基本上,我有一个带有ip(%ip\U file%)的文件“ip\U file.txt”。
我的脚本解析这个文件,并基于IP调用一个特定的程序

下面是我写脚本的方式,但它不起作用

REM START SCRIPT BASE

for /f %%i in (%ip_file%) do ( 
IF %%a.%%b.==10.10 call :script_1 %%i 
IF %%a.%%b.==192.168 call :script_2 %%i 
) 
else ( call :script_0 %%i) 

REM END SCRIPT BASE

有什么想法吗?

假设
%ip\u file%
引用的文件内容是IPv4地址列表(或者至少每行以IPv4地址开头),您可以使用
令牌和
delims
进行拆分

for /f %%i in (%ip_file%) do (
set ip=%%i 
if %ip:~0,5%==10.10 call :script_1 %%i 
if %ip:~0,7%==192.168 call :script_2 %%i 
) 
else ( call :script_0 %%i)
@echo关闭
setlocal
REM//启动主运行时
将“ip_file=path\to\ip_file.txt”设置为
对于/f“usebackq tokens=1-4 delims=。”%%a in(“%ip_文件%”)do(
如果“%%a.%b”==“10.10”(
调用:脚本1%%a.%b.%c.%d
)如果“%%a.%b”==“192.168”,则为else(
调用:脚本2%%a.%b.%c.%d
)else调用:脚本0%%a.%b.%c.%d
)
后藤:EOF
REM//结束主运行时
:脚本0
雷姆//一网打尽
后藤:EOF
:脚本_1
rem//句柄10.10地址
后藤:EOF
:脚本2
rem//句柄192.168地址
后藤:EOF

还应该注意的是,当您调用:label时,如果label以冒号开头,那么您正在调用同一批脚本中的子例程。如果您确实在调用外部批处理脚本,请不要使用冒号。

您希望%%a和%%b中有什么内容?你在哪里定义它们?这是我的错。现在问题解决了,这个也坏了<代码>!ip:~0,n需要延迟扩展(以及
setlocal enabledelayedexpansion
)。另外,
else
需要位于
if
语句的结束括号旁边。最后,我决定使用标记。非常感谢您的回答和建议。我添加了以下内容:设置ip=%%A.%b.%c.%d,所以现在我使用!ip!调用我的脚本。又比你强