请原谅我的新手问题,但自从 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