婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 用vbs實(shí)現(xiàn)刪除名稱中有撇號(hào)的文件夾

用vbs實(shí)現(xiàn)刪除名稱中有撇號(hào)的文件夾

熱門標(biāo)簽:廣州ai電銷機(jī)器人一般多少錢 外呼系統(tǒng)免費(fèi)招代理 怎么看地圖標(biāo)注 百度地圖標(biāo)注是什么意思 外呼系統(tǒng)telrobot 合肥高德地圖標(biāo)注 外呼線路中繼線是什么 深圳外呼系統(tǒng)收費(fèi) 拉薩外呼系統(tǒng)業(yè)務(wù)
問:
您好,腳本專家!如何刪除名稱中有撇號(hào)的文件夾?
-- JH
答:
您好,JH。噢,是的,撇號(hào):每個(gè)腳本編寫者的主要災(zāi)難來源。撇號(hào)看起來只是一個(gè)簡單的小字符,但切莫讓它的外表所迷惑:撇號(hào)(或單引號(hào))可能是鍵盤上最致命的字符。無論您是使用 Active Directory、數(shù)據(jù)庫,還是文件系統(tǒng),一個(gè)撇號(hào)就可以給您的腳本帶來全部災(zāi)難。正如 Bart Simpson 曾經(jīng)形容 Hershey? 的 Milk Dud 糖果,撇號(hào)也是“甜外毒內(nèi)”。
注意:不,Milk Dud 里面并非真的有毒藥。
撇號(hào)的問題在于它是“保留”字符,也就是 VBScript 自己專用的字符。例如,假設(shè)您要?jiǎng)h除文件夾 C:\Scripts。下面的腳本就將執(zhí)行這一操作:
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
如果您仔細(xì)查看 Where 子句,您會(huì)發(fā)現(xiàn)撇號(hào)(或單引號(hào))用于代表一個(gè)字符串值:‘C:\\Scripts'。這就是我們在處理名稱中有撇號(hào)的文件夾(例如,Ken's Scripts)時(shí)出現(xiàn)問題的原因。如果我們嘗試運(yùn)行如下腳本,您猜猜會(huì)發(fā)生什么?
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
我們不會(huì)讓您處于緊張的等待狀態(tài):這個(gè)腳本必然會(huì)失敗。為什么?唔,請看其中的 Where 子句:
Where Name = 'c:\\Ken's Scripts'
因?yàn)樵?nbsp;Where 子句中用撇號(hào)標(biāo)記字符串的起始和結(jié)尾,所以 VBScript 認(rèn)為文件夾的名稱為:‘C:\\Ken'。這本來沒問題,只可惜緊該字符串后面還有一串字符 (s Scripts')。VBScript 不知道這些雜亂數(shù)據(jù)表示什么,因此它只是放棄且不做任何嘗試。
是的,我們知道。但這就是 VBScript 的工作方式。因?yàn)槠蔡?hào)是一個(gè)保留字符,用來(還有其它用途)在 Where 子句中標(biāo)記字符串的起始和結(jié)尾。VBScript 只是不了解我們在說什么。
不,絕對不是笑話大多數(shù)不幸與腳本專家交談的人。那個(gè)問題太簡單了!
那么,有沒有解決這個(gè)問題的方法呢?肯定有。您也許知道,每次在 Where 子句中(例如,在文件路徑中)使用反斜線 (\) 時(shí),必須在其前面放置另一個(gè) \&;來“轉(zhuǎn)義”反斜線;這就是為什么我們的文件路徑類似 C:\\Scripts 而非 C:\Scripts。我們必須這樣做,因?yàn)?nbsp;\&;也是一個(gè)保留字符;指示 VBScript 按原樣使用 \&;的唯一方法就是轉(zhuǎn)義它(只是使用另一個(gè) \&;作為其開端)。 
嗨,稍等一下:如果只需使用另一個(gè) \&;作為開端就可以使用保留字符 \,或許您也可以使用如單引號(hào)之類的保留字符,方法是使用 \&;作為它的開端。 
您知道,這確實(shí)神奇地奏效了:
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。請注意我們是如何在撇號(hào)前面放置 \&;的;從而我們得到的結(jié)構(gòu)看起來像這樣:‘C:\\Ken\'s Scripts'。在文件夾名稱中的任何撇號(hào)前面均放一個(gè) \,腳本就可以正常工作了。是的,雖然看起來有點(diǎn)怪,但確實(shí)起作用。

標(biāo)簽:漳州 六安 嘉興 延安 臺(tái)灣 玉林 周口 廣安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用vbs實(shí)現(xiàn)刪除名稱中有撇號(hào)的文件夾》,本文關(guān)鍵詞  用,vbs,實(shí)現(xiàn),刪除,名稱,中有,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用vbs實(shí)現(xiàn)刪除名稱中有撇號(hào)的文件夾》相關(guān)的同類信息!
  • 本頁收集關(guān)于用vbs實(shí)現(xiàn)刪除名稱中有撇號(hào)的文件夾的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 米林县| 武城县| 镇远县| 门头沟区| 湘阴县| 海城市| 连山| 湄潭县| 且末县| 柞水县| 页游| 罗平县| 留坝县| 漳州市| 特克斯县| 柳林县| 濮阳县| 化德县| 福鼎市| 唐山市| 苍南县| 马关县| 安泽县| 福安市| 乌拉特前旗| 张掖市| 宁蒗| 泾川县| 滨州市| 吐鲁番市| 房产| 江孜县| 金华市| 怀集县| 修文县| 南丰县| 清镇市| 舞钢市| 巨野县| 瑞昌市| 徐州市|