批处理脚本:包括DO中的文件句柄%% i(子函数

时间:2011-01-21 20:58:51

标签: file function batch-file parameter-passing handle

我有点困惑,需要一些建议。

我首先使用%% i作为文件变量进行FOR循环。

for %%i in ("C:\*.*") do (
call :function1 "%%i"
goto function2
goto :eof
)

问题是文件参数没有给第一个函数..

我已经测试过在function1中放了一个' echo my echo is %% ',我得到了:

my echo is %i

并且在function2

中使用%% i也是如此

有人对我有建议吗?如何获取要在DO表单中运行的文件句柄?顺便说一句,这是Windows批处理。

2 个答案:

答案 0 :(得分:1)

@echo off
for %%i in ("C:\*.*") do (
  call :f "%%i"
)
pause
exit

:f
echo %1

答案 1 :(得分:0)

我实际上找到了我梦魇的来源,这很简单。 belisarius提到的解决方案很好,但确实使我的其余代码无法使用。

所以在解决方案上:

for %%i in ("C:\*.*") do (
call :function1 "%%~i"
call :function2 "%%~i"

没错!该死的括号!!但这是一个新课程学习;) 你的时间Belisarius Thanx