如何向 bat 脚本传递参数

如何向 bat 脚本传递参数

请原谅我的新手问题,但自从 autoexec.bat 出现以来,我还没有接触过 bat 脚本......而且那个脚本甚至是直接从系统中调用的。

所以我想知道如何将参数传递给我的 bat 脚本?

例如,我想创建具有特定名称的 n 个目录。我想使用如下构造:

for %%N in (1 to $arg1$) do mkdir $arg2$-%%N

因此,我希望有 N 个目录名为

  • 名称-1
  • 名称-2
  • 名称-3

... 等等。

谢谢!

答案1

它只是 %1 %2 ... %n,分别表示参数 1、参数 2、...、参数 n

例如。

我做的 for 循环是这样的:

FOR %%a IN ("filename1" "filename2" "filename3") DO something %%a -clean Lib -log errors >> logfilename

答案2

批处理文件使用位置参数编号 (%1、%2、%3) 来指示参数。对于您的示例,它将是:

对于 %%N in (1 到 %1) do mkdir %2-%%n

这里有一个参考指南

但是你的 for 循环结构也是错误的 - 据我所知,批处理文件中没有“to”关键字。括号中的内容应该是一个集合(例如:1 2 3 4) - 我不确定你是否可以在不使用标签和 goto 的情况下按你想要的方式进行循环...

以下是FOR 命令

以下是使用标签和 goto 进行循环的方法 - 从程序员的角度来看这并不好看 - 但是批处理文件呢?


set counter=%1
set count=1
:LOOP
if %count% GEQ %counter% GOTO END
mkdir %2-%count%
set /a count = %count% + 1
goto LOOP
:END

答案3

我认为你想要的是:

@echo off
for /l %%a in (1,1,%1) do mkdir Folder-%%a

相关内容