2011-01-21 3 views
1

に私は少しこだわっていると、いくつかのアドバイスが必要バッチスクリプト:ファイルハンドルを含む%%私は、DO(サブファンクション

私は%% Iファイル変数などでFORループを実行して起動し

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

問題は、ファイル・パラメータが1に機能するように指定されていないということです。..

私は関数1で「は私のエコーが%%でエコー」と私は取得入れてテストしています

my echo is %i 

と機能2

におけるI %%の使用のために同じことをexacltleは、誰もが私のためのアドバイスを持っていますか?ファイルハンドルをDO形式で機能させるにはどうすればよいですか?ちなみに、これはWindowsのバッチです。

答えて

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

:f 
echo %1 
+0

答えはありがたいですが、問題は、サブファンクションでは、私はいくつかのセットを作ることです。 SET "filename =#。%〜n1"(ドットで区切られたファイル名の1番目の部分を取る)、SET "ext =%〜x1 .."というように、%% iを自分のハンドルにすることができます。私の問題を参照してください。ハンドルが既に%1になったときにそれらを呼び出すにはどうすればよいでしょうか?提案? – Rps

+0

%% iも%1は同じ修飾子を受け入れます。call:func "%%〜xi"あなたの関数 "%〜x1" – jeb

0

実際に私の悪夢の原因が見つかりました。それはかなり簡単でした。 belisariusで言及された解決策は良かったが、残りのコードを使用できなくした。

ソリューションにそう

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

そうです!くそったブラケット!しかし、それは新しいレッスンです;) あなたの時間のためのThanx

関連する問題