*批处理*在多个位置重复一个命令块?

时间:2014-05-12 16:49:23

标签: batch-file command dos

我正在编写一个带有移动的小型批处理程序" @"在3x3的网格中 我希望在5个地方使用这段代码:

if %face%==up set /a x=%x%+1  
if %face%==left set /a y=%y%+1  
if %face%==down set /a x=%x%-1  
if %face%==right set /a y=%y%-1  

(x和y混在一起,但不要担心)

我可以复制粘贴几次,但我想知道是否有更好的方法:)

所以我想要一个"变量"包含该代码并放入"变量"在我需要它的地方,而不是复制粘贴它......

1 个答案:

答案 0 :(得分:0)

你可以制作一个sudo-function,如:

goto skip_face_func
:face_func
set x=%1
set y=%2
if not defined x set x=0
if not defined y set y=0
if %face%==up set /a x=%x%+1  
if %face%==left set /a y=%y%+1  
if %face%==down set /a x=%x%-1  
if %face%==right set /a y=%y%-1 
goto :eof
:skip_face_func


:: Making x=1 y=4
call :face_func 1 4
echo x:%x% y:%y%

:: Making x=5 y=2
call :face_func 5 2
echo x:%x% y:%y%