在編寫(xiě)B(tài)AT腳本的過(guò)程中經(jīng)常遇到類(lèi)似這樣的需求:
當(dāng)需要生成的文本內(nèi)容比較簡(jiǎn)單的時(shí)候,可以直接使用 echo 命令重定向來(lái)實(shí)現(xiàn)sql生成腳本文件帶數(shù)據(jù),例如:
@
> . "bbs"
>>. ""
>>. "net"
這里有個(gè)小技巧,把多次重定向?qū)懭胛募牟僮骱喜⒊梢淮尾僮?,可以提高代碼執(zhí)行效率,例如:
@
>.vbs (
"bbs"
""
"net"
)
使用 echo 命令重定向這個(gè)方案有一個(gè)問(wèn)題需要注意,如果待生成的文本內(nèi)容包含百分號(hào)、大于號(hào)、小于號(hào)、管道符號(hào)以及其它特殊字符的時(shí)候,需要進(jìn)行轉(zhuǎn)義。其中sql生成腳本文件帶數(shù)據(jù),百分號(hào)使用 % 進(jìn)行轉(zhuǎn)義,其它特殊字符使用 ^ 進(jìn)行轉(zhuǎn)義:
@
>. bbs ^|msg %%%% /time:2
>>. ^|msg %%%% /time:2
>>. net ^|msg %%%% /time:2
如果需要?jiǎng)討B(tài)生成的文本內(nèi)容比較長(zhǎng),尤其是包含很多特殊字符的情況下,使用 echo 命令重定向這種方案會(huì)比較麻煩,而且也不利于代碼的后期維護(hù)??梢允褂昧硗庖粋€(gè)方案來(lái)實(shí)現(xiàn)這個(gè)功能:
@
for/f"=:"%%i in(' /n "^:$" "%~f0"')do(
more+%%i"%~f0">.bat
)
goto:eof
REM 請(qǐng)確保待生成的文本位于腳本的末尾
:
@echo off
echo bbs | msg %% /time:2
echo | msg %% /time:2
echo net | msg %% /time:2
代碼的思路是,把待生成的文本放到一個(gè)指定的標(biāo)簽下面,用 命令獲取這個(gè)標(biāo)簽在該腳本的第幾行,再用 more 命令把該行下面的內(nèi)容重定向輸出到文件。
友情鏈接: 餐飲加盟
地址:北京市海淀區(qū) 電話(huà):010- 郵箱:@126.com
備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有