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 检查参数以获取信息_Batch File - Fatal编程技术网

Batch file 检查参数以获取信息

Batch file 检查参数以获取信息,batch-file,Batch File,我有一个脚本,可以读取其他.bat文件并计算注释行数。我将要测试的.bat文件作为参数传递。 例如,这就是我如何开始我的脚本 C:\User\User\Desktop>CommentReader.bat test.bat 现在test.bat需要与skcript位于同一文件夹中 我想要一个选项,可以传递多个需要测试的.bat文件,也可以传递路径。例如: C:\User\User\Desktop>CommentReader.bat D:\testfolder\test1.bat E

我有一个脚本,可以读取其他.bat文件并计算注释行数。我将要测试的.bat文件作为参数传递。 例如,这就是我如何开始我的脚本

C:\User\User\Desktop>CommentReader.bat test.bat
现在test.bat需要与skcript位于同一文件夹中

我想要一个选项,可以传递多个需要测试的.bat文件,也可以传递路径。例如:

 C:\User\User\Desktop>CommentReader.bat D:\testfolder\test1.bat E:\test2.bat test3.bat
我还想传递命令,例如/l,这样脚本也可以读取空行

C:\User\User\Desktop>CommentReader.bat /l D:\testfolder\test1.bat E:\test2.bat test3.bat
我知道如何编写代码,使它也可以读取空行,但 检查我的参数和检查信息的最佳方法是什么

我的想法是这样的:

FOR /f  tokens=1,2,3,4,5,6,7,8,9, delims= " %%a in (%*) DO (

)

但是也许有更好的方法?

正如Stephan在评论部分所说的那样,
SHIFT
是您要寻找的。此脚本将循环遍历所有参数并将其回显。只需将
ECHO
命令替换为实际代码即可

@ECHO OFF
:LOOP
IF NOT "%1"=="" (
    ECHO %1
    SHIFT
    GOTO LOOP
)

第一个参数总是
%1
,第二个参数总是
%2
,依此类推。
SHIFT
命令将“忘记”原始的
%1
,并将所有索引减少1,因此
%2
将变为
%1
%3
将变为
%2
,依此类推。当您到达最后一个参数时,
SHIFT
将把
%1
变成一个空字符串,这样您就可以退出循环。

和转到循环谢谢您的回答。我将和shift一起试用,我想这应该能解决我的问题d移位是否在整个脚本中保留,或仅在整个脚本中保留的IF查询?@RjuJBong中保留。