国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

用vbs實現刪除名稱中有撇號的文件夾

2020-03-24 16:47:33
字體:
來源:轉載
供稿:網友
問:
您好,腳本專家!如何刪除名稱中有撇號的文件夾?
-- JH
答:
您好,JH。噢,是的,撇號:每個腳本編寫者的主要災難來源。撇號看起來只是一個簡單的小字符,但切莫讓它的外表所迷惑:撇號(或單引號)可能是鍵盤上最致命的字符。無論您是使用 Active Directory、數據庫,還是文件系統,一個撇號就可以給您的腳本帶來全部災難。正如 Bart Simpson 曾經形容 Hershey? 的 Milk Dud 糖果,撇號也是“甜外毒內”。
注意:不,Milk Dud 里面并非真的有毒藥。
撇號的問題在于它是“保留”字符,也就是 VBScript 自己專用的字符。例如,假設您要刪除文件夾 C:/Scripts。下面的腳本就將執行這一操作:
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colFolders = objWMIService. _
ExecQuery("Select * From Win32_Directory Where Name = 'C://Scripts'")
For Each objFolder in colFolders
errResults = objFolder.Delete
Next
如果您仔細查看 Where 子句,您會發現撇號(或單引號)用于代表一個字符串值:‘C://Scripts'。這就是我們在處理名稱中有撇號的文件夾(例如,Ken's Scripts)時出現問題的原因。如果我們嘗試運行如下腳本,您猜猜會發生什么?
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colFolders = objWMIService. _
ExecQuery("Select * From Win32_Directory Where Name = 'C://Ken's Scripts'")
For Each objFolder in colFolders
errResults = objFolder.Delete
Next
我們不會讓您處于緊張的等待狀態:這個腳本必然會失敗。為什么?唔,請看其中的 Where 子句:
Where Name = 'c://Ken's Scripts'
因為在 Where 子句中用撇號標記字符串的起始和結尾,所以 VBScript 認為文件夾的名稱為:‘C://Ken'。這本來沒問題,只可惜緊該字符串后面還有一串字符 (s Scripts')。VBScript 不知道這些雜亂數據表示什么,因此它只是放棄且不做任何嘗試。
是的,我們知道。但這就是 VBScript 的工作方式。因為撇號是一個保留字符,用來(還有其它用途)在 Where 子句中標記字符串的起始和結尾。VBScript 只是不了解我們在說什么。
不,絕對不是笑話大多數不幸與腳本專家交談的人。那個問題太簡單了!
那么,有沒有解決這個問題的方法呢?肯定有。您也許知道,每次在 Where 子句中(例如,在文件路徑中)使用反斜線 (/) 時,必須在其前面放置另一個 / 來“轉義”反斜線;這就是為什么我們的文件路徑類似 C://Scripts 而非 C:/Scripts。我們必須這樣做,因為 / 也是一個保留字符;指示 VBScript 按原樣使用 / 的唯一方法就是轉義它(只是使用另一個 / 作為其開端)。
嗨,稍等一下:如果只需使用另一個 / 作為開端就可以使用保留字符 /,或許您也可以使用如單引號之類的保留字符,方法是使用 / 作為它的開端。
您知道,這確實神奇地奏效了:
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colFolders = objWMIService. _
ExecQuery("Select * from Win32_Directory Where Name = 'C://Ken/'s Scripts'")
For Each objFolder in colFolders
errResults = objFolder.Delete
Next
答案就在這里,JH。請注意我們是如何在撇號前面放置 / 的;從而我們得到的結構看起來像這樣:‘C://Ken/'s Scripts'。在文件夾名稱中的任何撇號前面均放一個 /,腳本就可以正常工作了。是的,雖然看起來有點怪,但確實起作用。
html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 漳浦县| 五指山市| 长沙县| 大连市| 饶阳县| 泗洪县| 宜春市| 攀枝花市| 陇南市| 合山市| 新泰市| 铁岭县| 沐川县| 湘潭市| 新郑市| 鱼台县| 东山县| 长寿区| 含山县| 陆良县| 中宁县| 东乡县| 云南省| 万年县| 巧家县| 林芝县| 永善县| 荥阳市| 通州区| 乌鲁木齐市| 武功县| 凌海市| 策勒县| 海阳市| 伊宁县| 常州市| 三亚市| 许昌县| 福鼎市| 云和县| 南丰县|