2

http://ss64.com/nt/syntax-args.htmlの記事「PassingbyReference」には、次のことが記載されています。

コマンドラインで数値または文字列値を渡すことに加えて、変数名を渡し、その変数を使用してスクリプトまたはサブルーチン間でデータを転送することもできます。

しかし、どうすればよいですか?変数の値を設定し、その名前を次のように渡すと

set parm=42
call sub.bat parm

どのように使用しsub.batますか?

4

2 に答える 2

7

遅延拡張を介して

@echo off
setlocal
set var1=value1
set var2=value2
call :sub var1
call :sub var2
exit /b

:sub
setlocal enableDelayedExpansion
echo %~1=!%~1!
exit /b

-出力-

var1=value1
var2=value2
于 2013-01-15T14:04:53.387 に答える
0

それらを名前で参照します。1.batから実行される2.batは同じ環境ブロックを継承するため、

1.BAT

set parm=42
echo parm is '%parm%'
call 2.bat
echo parm is '%parm%'

2.BAT

set parm=XXX%parm%XXX

印刷します:

parm is '42'
parm is 'XXX42XXX'

(を使用すると、のsub.batでcall sub.bat %parm%コピーを利用できるようになります)parm%1

于 2013-01-15T13:28:48.757 に答える