青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

luqingfei@C++

為中華之崛起而崛起!
兼聽則明,偏聽則暗。

[轉]Windows下set命令詳解

        最近想要在Windows下批量備份文件成不同的日期后綴,需要一個時間變量,于是翻閱了很多資料,發現可以用set命令很方便得在bat中實現。于是順便也研究了一下set命令的詳細使用方法。首先來看一下set命令的官方help:
 
C:\Documents and Settings\wangxiaoqi>set /?

顯示、設置或刪除 cmd.exe 環境變量。
 
SET [variable=[string]]
 
  variable  指定環境變量名。
  string    指定要指派給變量的一系列字符串。
 
要顯示當前環境變量,鍵入不帶參數的 SET。
 
如果命令擴展名被啟用,SET 會如下改變:
 
可僅用一個變量激活 SET 命令,等號或值不顯示所有前綴匹配SET 命令已使用的名稱的所有變量的值。例如:
 
    SET P
 
會顯示所有以字母 P 打頭的變量
 
如果在當前環境中找不到該變量名稱,SET 命令將把 ERRORLEVEL設置成 1。
 
SET 命令不允許變量名含有等號。
 
在 SET 命令中添加了兩個新命令行開關:
 
    SET /A expression
    SET /P variable=[promptString]
 
/A 命令行開關指定等號右邊的字符串為被評估的數字表達式。該表達式評估器很簡單并以遞減的優先權順序支持下列操作:
 
    ()                  - 分組
    ! ~ -               - 一元運算符
    * / %               - 算數運算符
    + -                 - 算數運算符
    << >>               - 邏輯移位
                       - 按位“與”
    ^                   - 按位“異”
    |                   - 按位“或”
    = *= /= %= += -=    - 賦值
      &= ^= |= <<= >>=
    ,                   - 表達式分隔符
 
如果您使用任何邏輯或取余操作符, 您需要將表達式字符串用引號擴起來。在表達式中的任何非數字字符串鍵作為環境變量名稱,這些環境變量名稱的值已在使用前轉換成數字。如果指定了一個環境變量名稱,但未在當前環境中定義,那么值將被定為零。這使您可以使用環境變量值做計算而不用鍵入那些 % 符號來得到它們的值。如果 SET /A 在命令腳本外的命令行執行的,那么它顯示該表達式的最后值。該分配的操作符在分配的操作符左邊需要一個環境變量名稱。除十六進制有 0x 前綴, 八進制有 0 前綴的,數字值為十進位數字。因此, 0x12 與 18 和 022相同。請注意八進制公式可能很容易搞混: 08 和 09 是無效的數字,因為 8 和 9 不是有效的八進制位數。
 
/P 命令行開關允許將變量數值設成用戶輸入的一行輸入。讀取輸入行之前,顯示指定的 promptString。promptString 可以是空的。
 
環境變量替換已如下增強:
 
    %PATH:str1=str2%
 
會擴展 PATH 環境變量,用 "str2" 代替擴展結果中的每個 "str1"。要有效地從擴展結果中刪除所有的 "str1","str2" 可以是空的。"str1" 可以以星號打頭;在這種情況下,"str1" 會從擴展結果的開始到 str1 剩余部分第一次出現的地方,都一直保持相配。
 
也可以為擴展名指定子字符串。
 
    %PATH:~10,5%
 
會擴展 PATH 環境變量,然后只使用在擴展結果中從第 11 個(偏移量 10)字符開始的五個字符。如果沒有指定長度,則采用默認值,即變量數值的余數。如果兩個數字(偏移量和長度)都是負數,使用的數字則是環境變量數值長度加上指定的偏移量或長度。
 
    %PATH:~-10%
 
會提取 PATH 變量的最后十個字符。
 
    %PATH:~0,-2%
 
會提取 PATH 變量的所有字符,除了最后兩個。
 
終于添加了延遲環境變量擴充的支持。該支持總是按默認值被停用,但也可以通過 CMD.EXE 的 /V 命令行開關而被啟用/停用。
請參閱 CMD /?
 
考慮到讀取一行文本時所遇到的目前擴充的限制時,延遲環境變量擴充是很有用的,而不是執行的時候。以下例子說明直接變量擴充的問題:
 
    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "%VAR%" == "after" @echo If you see this, it worked
    )
 
不會顯示消息,因為在讀到第一個 IF 語句時,BOTH IF 語句中的 %VAR% 會被代替;原因是: 它包含 IF 的文體,IF 是一個復合語句。所以,復合語句中的 IF 實際上是在比較 "before" 和"after",這兩者永遠不會相等。同樣,以下這個例子也不會達到預期效果:
 
    set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%
 
原因是,它不會在目前的目錄中建立一個文件列表,而只是將LIST 變量設成找到的最后一個文件。這也是因為 %LIST% 在FOR 語句被讀取時,只被擴充了一次;而且,那時的 LIST 變量是空的。因此,我們真正執行的 FOR 循環是:
 
    for %i in (*) do set LIST= %i
 
這個循環繼續將 LIST 設成找到的最后一個文件。
 
延遲環境變量擴充允許您使用一個不同的字符(驚嘆號)在執行時間擴充環境變量。如果延遲的變量擴充被啟用,可以將上面例子寫成以下所示,以達到預期效果:
 
    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "!VAR!" == "after" @echo If you see this, it worked
    )
 
    set LIST=
    for %i in (*) do set LIST=!LIST! %i
    echo %LIST%
 
如果命令擴展名被啟用,有幾個動態環境變量可以被擴展,但不會出現在 SET 顯示的變量列表中。每次變量數值被擴展時,這些變量數值都會被動態計算。如果用戶用這些名稱中任何一個定義變量,那個定義會替代下面描述的動態定義:
 
%CD%            - 擴展到當前目錄字符串。
%DATE%          - 用跟 DATE 命令同樣的格式擴展到當前日期。
%TIME%          - 用跟 TIME 命令同樣的格式擴展到當前時間。
%RANDOM%        - 擴展到 0 和 32767 之間的任意十進制數字。
%ERRORLEVEL%    - 擴展到當前 ERRORLEVEL 數值。
%CMDEXTVERSION% - 擴展到當前命令處理器擴展名版本號。
%CMDCMDLINE%    - 擴展到調用命令處理器的原始命令行。
 
 
    這次用到的屬性可以參見紅色標注段落,可以做一個實驗來加深理解:
 
C:\Documents and Settings\wangxiaoqi>set a=1234567890
 
C:\Documents and Settings\wangxiaoqi>echo %a%
1234567890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~3,3%
456
 
C:\Documents and Settings\wangxiaoqi>echo %a:~3%
4567890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3%
890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3,-2%
8
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3,-4%
ECHO 處于打開狀態。
 
C:\Documents and Settings\wangxiaoqi>echo %a:~,-4%
123456
 
C:\Documents and Settings\wangxiaoqi>echo %a:~4,%
ECHO 處于打開狀態。

    總得來說,windows下面這個特性的應用跟oracle下面的substr函數還是有區別的,主要是第二位的負數處理存在差異。Oracle的第二位負數表示從右往左數,而Windows下的set命令第二位負數表示從右邊開始截斷多少位,只有單獨使用的時候才表示從左往右數。
 
    這次需要用到的是日期變量,所以可以很容易得通過set命令來實現:
 
C:\Documents and Settings\wangxiaoqi>echo %DATE%
2009-04-30 星期四
 
C:\Documents and Settings\wangxiaoqi>set b=%DATE:~0,10%
 
C:\Documents and Settings\wangxiaoqi>echo %b%
2009-04-30
 
 
    需要注意的是:不同的Windows版本,DATE的默認格式是不同的,有的星期放在左邊,有的星期放在右邊,所以最好先echo出來看一看再調整參數,當然在左邊的就更方便了,直接 %DATE:~-10% 就可以了。有空的時候再研究一下別的特性。

posted on 2010-06-27 13:09 luqingfei 閱讀(588) 評論(0)  編輯 收藏 引用 所屬分類: Windows

導航

<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統計

留言簿(6)

隨筆分類(109)

隨筆檔案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美韩国一区| 禁久久精品乱码| 欧美三级精品| 欧美在线免费视频| 久久精品国产96久久久香蕉| 国产啪精品视频| 亚洲破处大片| 性欧美1819性猛交| 亚洲视频在线播放| 亚洲欧美成人精品| 久久福利一区| 久久久久综合| 亚洲国产va精品久久久不卡综合| 久久久精品国产99久久精品芒果| 亚洲综合色网站| 美女视频黄a大片欧美| 91久久精品美女高潮| 欧美成人精品不卡视频在线观看 | 欧美精品日韩精品| 国产精品成人av性教育| 久久午夜精品一区二区| 久久资源av| 亚洲精品一区二区网址 | 影音先锋亚洲视频| 欧美日韩免费一区| 欧美大片一区| aⅴ色国产欧美| 鲁大师影院一区二区三区| 亚洲大胆在线| 99re这里只有精品6| 新片速递亚洲合集欧美合集| 欧美午夜宅男影院| 亚洲欧美久久久久一区二区三区| 99这里有精品| 性欧美xxxx大乳国产app| 免费人成网站在线观看欧美高清| 欧美aaa级| 久久综合九色九九| 国产自产2019最新不卡| 亚洲天堂av图片| 亚洲欧洲99久久| 99re66热这里只有精品4| 韩日视频一区| 欧美影院午夜播放| 亚洲综合不卡| 国产毛片精品国产一区二区三区| 亚洲第一色在线| 欧美在线观看视频在线| 激情久久五月天| 久久精品日产第一区二区三区| 国产精品久久久久高潮| 亚洲国产第一页| 亚洲国产精品黑人久久久| 免费观看成人鲁鲁鲁鲁鲁视频 | 久久香蕉国产线看观看网| 国产视频一区二区在线观看| 欧美一区二区高清| 伊大人香蕉综合8在线视| 亚洲第一黄色网| 国产精品vvv| 久久久国产91| 欧美精品午夜视频| 亚洲精品1234| 午夜精品久久久久久久| 可以免费看不卡的av网站| 国产色婷婷国产综合在线理论片a| 欧美电影美腿模特1979在线看| 国产日产高清欧美一区二区三区| 久久综合国产精品| av成人国产| 欧美一进一出视频| **欧美日韩vr在线| 羞羞答答国产精品www一本 | 在线观看91精品国产入口| 亚洲欧美第一页| 噜噜噜91成人网| 免费精品视频| 亚洲精品资源| 尹人成人综合网| 亚洲视频综合在线| 欧美日韩国产专区| 亚洲第一黄网| 日韩视频不卡| 亚洲人成网站999久久久综合| 欧美精品久久久久久久免费观看 | 亚洲欧洲一区二区三区| 亚洲欧洲日本一区二区三区| 国产伦一区二区三区色一情| 亚洲尤物视频在线| 久久综合久久综合九色| 国内精品免费在线观看| 欧美午夜精品久久久久免费视| 国产精品免费观看在线| 久久阴道视频| 亚洲高清视频在线| 国产小视频国产精品| 老妇喷水一区二区三区| 亚洲性感美女99在线| 99伊人成综合| 欧美日韩中文字幕在线视频| 蜜臀av性久久久久蜜臀aⅴ| 99国内精品久久| 国内精品久久久| 亚洲国产精品第一区二区| 欧美自拍丝袜亚洲| 欧美精品三区| 久久综合国产精品台湾中文娱乐网 | 欧美国产日韩xxxxx| 亚洲影院色无极综合| 欧美大秀在线观看| 欧美亚洲日本一区| 亚洲精品中文字| 在线综合亚洲| 欧美一区二区三区在| 日韩亚洲欧美综合| 亚洲一区日本| 国产精品国产| 欧美成人精品在线观看| 夜夜精品视频| 亚洲视频图片小说| 久久久久久97三级| 亚洲欧美精品中文字幕在线| 亚洲欧美国产精品桃花| 欧美资源在线观看| 一区二区三区国产精品| 午夜欧美不卡精品aaaaa| 欧美网站在线观看| 性欧美大战久久久久久久免费观看| 亚洲国产合集| 久久精品国产一区二区三区免费看 | 亚洲专区一区二区三区| 欧美午夜精品久久久| 国产亚洲免费的视频看| 亚洲国产一区二区三区高清| 亚洲欧美另类在线观看| 蘑菇福利视频一区播放| 99精品视频免费观看| 欧美日韩另类视频| 亚洲一级网站| 亚洲欧洲av一区二区| 亚洲四色影视在线观看| 欧美日本网站| 欧美一区二区在线播放| 亚洲男人的天堂在线| 亚洲黄色在线看| 国产免费亚洲高清| 国产精品videosex极品| 欧美一区三区三区高中清蜜桃| 亚洲免费观看高清完整版在线观看熊| 六月婷婷久久| 欧美一区午夜视频在线观看| 久久精品久久99精品久久| 欧美成人精品激情在线观看| 尤物精品在线| 亚洲电影欧美电影有声小说| 免费在线成人av| 欧美一二三区精品| 久久精品国产99国产精品| 欧美中文在线观看| 国产精品美女久久久浪潮软件| 久久国产精品一区二区| 久久久欧美精品| 午夜精品短视频| 欧美黄色aaaa| 一本久久a久久精品亚洲| 久久九九免费视频| 一本色道久久综合狠狠躁篇的优点 | 欧美日韩一区三区| 亚洲一区亚洲二区| 久久久久久久性| 久久久久久久高潮| 亚洲破处大片| 亚洲精品美女在线观看| 国内视频一区| 老司机亚洲精品| 久久成人羞羞网站| 国产日韩综合| 亚洲精品一区二区三区av| 亚洲免费在线精品一区| 一二美女精品欧洲| 亚洲欧美韩国| 国产一区二区三区在线观看免费| 久久免费视频在线观看| 亚洲国产精品激情在线观看| 国产偷国产偷亚洲高清97cao| 老司机亚洲精品| 久久爱另类一区二区小说| 欧美日韩国产在线一区| 亚洲午夜在线观看| 久久亚洲电影| 亚洲一区999| 国产一区二区欧美| 欧美无乱码久久久免费午夜一区| 欧美日韩国产色站一区二区三区| 久久久久在线| 亚洲激情国产精品| 欧美精品一区二区三区高清aⅴ| 亚洲午夜精品久久久久久app| 欧美一区二区三区免费观看| 亚洲高清视频一区|