2012-03-28 69 views
0

你好我正在製作與Windows批處理文件的網頁搜索程序如何在批處理文件函數中發送字符串作爲參數?

在搜索之前,我需要將html代碼保存到變量和正則表達式。

我在Windows XP SP3

我不知道如何可以發送特殊字符的混合字符串作爲函數參數

我的代碼是在這裏

cd curl-7.25 

for /f "tokens=*" %%R IN ('curl.exe -G --max-redirs 3 http://www.google.com?') DO call:MyFunc %%R 

pause 

:MyFunc 
echo %~1 
goto:eof 

的問題是「電話:MYFUNC %% R「

html代碼包含許多'<'和'>'(括號)

,這解釋爲管道。

我試圖避免。

任何幫助,將不勝感激

回答

0

你無法逃避%% R的內容,當你從捲曲收到它。
但是,您可以通過延遲擴展來處理它。

cd curl-7.25 
set "curlCmd=curl.exe -G --max-redirs 3 http://www.google.com?" 

setlocal DisableDelayedExpansion 
for /f "tokens=*" %%R IN ('!curlCmd!') DO (
    set "line=%%R" 
    call :MyFunc line 
) 
pause 
exit /b 

:MyFunc 
setlocal EnableDelayedExpansion 
echo !%~1! 
rem ** Or you can use directly echo !line! 
endlocal 
exit /b 

我首先禁用延遲擴展,否則會出現感嘆號和/或插入符號的問題。
然後我打電話:MyFunc與變量名稱不是內容,因爲調用會修改內容。

而訪問內容我啓用延遲擴展,因爲延遲擴展不會修改或干擾變量的內容。

相關問題