Batch-File

如何將參數傳遞給bat腳本

  • May 12, 2011

請原諒我的新手問題,但自從 autoexec.bat 時代以來,我就不必接觸 bat 腳本了……甚至直接從系統呼叫了那個腳本。

所以我想知道如何將參數傳遞給我的 bat 腳本?

例如,我想創建 n 個具有特定名稱的目錄。我想使用這樣的構造:

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

結果我想有N個目錄被稱為

  • name-1
  • name-2
  • name-3

… 等等。

謝謝!

它只是 %1 %2 … %n 用於參數 1、參數 2、…、參數

例如看這個。

我這樣做的for循環是這樣的:

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

批處理文件使用位置參數編號(%1、%2、%3)來指示參數。對於您的範例,它將是:

對於 %%N in (1 to %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

引用自:https://serverfault.com/questions/58967