日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解变量字符的截取功能

發布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解变量字符的截取功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?http://www.cn-dos.net/forum/viewthread.php?tid=25746

::code by lxmxn @ cn-dos.net .
::目的:幫助新手們更好的理解變量字符截取功能.
::Date 2006-12-16 .
::說明:有的變量截取之后值為空,這是正常的.
@echo off&setlocal EnableDelayedexpansion
::設置變量var的值:
set var=0123456789ABCDEF
call :begin
for /l %%a in (1,3,15) do (
? ? for /l %%b in (1,4,15) do (
? ?? ???call :printf %%a %%b
? ? )
)
call :begin
for /l %%a in (1,4,15) do (
? ? for /l %%b in (-1,-3,-15) do (
? ?? ???call :printf??%%a %%b
? ? )
)
call :begin
for /l %%a in (-2,-3,-15) do (
? ? for /l %%b in (1,4,15) do (
? ?? ???call :printf??%%a %%b
? ? )
)
call :begin
for /l %%a in (-1,-4,-15) do (
? ? for /l %%b in (-2,-3,-15) do (
? ?? ???call :printf??%%a %%b
? ? )
)
pause
endlocal&cls&echo.
echo 演示結束了,任意鍵退出……
pause>nul
goto :eof

::輸出結果:
:printf
? ? echo %%var:~%1,%2%%? ? ? ? 截取之后的字符為:? ? ? ? !var:~%1,%2!
? ? goto :eof

::清理屏幕:
:begin
? ? echo\&pause&cls&echo.
? ? echo ? ? ? ? ? ? ? ? ? ? ? ? 變量var的值為:? ? ? ? %var%
? ? echo.
? ? goto :eof

===

http://article.lre.cn/article/10001572.htm

 從一個批處理程序中調用另一個批處理程序,而不會引起第一個批處理的中止。

  語法:CALL[drive:][path]filename[batch-parameters]

  參數:[drive:][path]filename,指定要調用的批處理程序的名字及其存放處。文件名必須用.BAT作擴展名。

  batch-parameters 指定批處理程序所需的命令行信息。

  CALL 注解

  使用批處理參數:批處理參數可包含傳遞給批處理程序的任何信息,包括開關項、文件名、可替換參數%1至%9,以及環境變量,如%baud%。

  使用管道和重定向符:在CALL命令中,不要用管道("|")和重定向符號("<<","<",">",和">>")。

  遞歸調用:可以創建一個批處理程序調用它本身,但必須有一條exit命令。否則,父、子批處理程序將無限循環下去。

  ======================================================

  CALL 例子

  從另一批處理程序運行 CHECKNEW.BAT,在父批處理程序中可包含命令:call checknew

  假設父批處理程序接收兩個可替換參數,并希望將它們傳給CHECKNEW.BAT。可在父批理程序中使用命令:call checknew %1%2

?

=================

@echo off
set str=123456789
echo 第一個字符為:%str:~0,1%
echo 頭兩個字符為:%str:~0,2%
echo 頭5個字符為:%str:~0,5%
echo 去掉最后一個字符后的字符串為:%str:~0,-1%
echo 去掉最后3個字符后的字符串為:%str:~0,-3%
echo 第4個字符為:%str:~3,1%
echo 第4個及其之后的3個字符為:%str:~3,4%
echo 最后一個字符為:%str:~-1%
echo 最后一個字符為:%str:~-1,1%
echo 最后一個字符為:%str:~-1,2%
echo 倒數第4個字符為:%str:~-4,1%
echo 倒數第4個及其之后的字符為:%str:~-4%
echo 倒數第4個及其之后的1個字符為:%str:~-4,2%
echo 倒數第4個及其之后的2個字符為:%str:~-4,3%
pause
為了說明這個問題,我在這里把批處理取字符,做下進一步的解釋,希望對新手有所啟發
如下:
echo %var:~n,k%
我們在這里對每個參數做個說明:"%var",即我們要從中要截取字符的字符串." ~ "取字

符標志符(我是這么理解的),"n" 我們將其理解為指針,"k"我們將其理解為偏移地址.(注

:指針和偏移地址都是從零開始數的)
我們還是用namejm版主的例子做下說明:

@echo off
set str=123456789

rem 定義一個str字符串為123456789

echo 第一個字符為:%str:~0,1%

rem 指針為0,偏移地址為1,即從第0位開始,取1位

echo 頭兩個字符為:%str:~0,2%

rem 指針為0,偏移地址為2,即從第0位開始,取2位

echo 頭5個字符為:%str:~0,5%

rem??? 指針為0,偏移地址為5,即從第0位開始,取5位

echo 去掉最后一個字符后的字符串為:%str:~0,-1%

rem 當"k"為負值時,我們可以這樣理解:從指針開始處開始取其后面所有字符,然后減去

后面"abs(k)位"..所以這個句字我們可以做如下解釋:從第0位開始取其全部字符

為:123456789然后從后面減去abs(k)位,所以最后結果為:12345678

echo 去掉最后3個字符后的字符串為:%str:~0,-3%

rem??? 該句解釋同上↑

echo 最后一個字符為:%str:~-1%

rem??? 參數"n,"和"k"都可以為缺省,缺省"n,"時可以理解為:從abs(k)位開始取其全部

echo 倒數第4個及其之后的字符為:%str:~-4%

rem??? 解釋同上↑

echo 最后一個字符為:%str:~-1,1%

rem??? n為負值時,表示從后面開始截取字符,取k位(此時n應從1開始數)

echo 最后一個字符為:%str:~-1,2%

rem??? 解釋同上↑

echo 倒數第4個字符為:%str:~-4,1%

rem??? 解釋同上↑

echo 倒數第4個及其之后的1個字符為:%str:~-4,2%

rem??? 解釋同上↑

echo 倒數第4個及其之后的2個字符為:%str:~-4,3%

rem 解釋同上↑


pause

?

?

總結

以上是生活随笔為你收集整理的理解变量字符的截取功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。