iT邦幫忙

0

我想寫一個批次檔~

要刪除C:\WINDOWS底下所有 $ 字號開頭的隱藏資料夾~可以幫我著名程式的意思嗎~我是新手
= ="
謝謝~

18
sailsolitary
iT邦研究生 2 級 ‧ 2008-11-21 00:30:14
最佳解答

del %SystemRoot%\$*

12
總裁
iT邦好手 1 級 ‧ 2008-11-20 11:24:33

cd C:\WINDOWS
del $*

14
Pankt
iT邦研究生 1 級 ‧ 2008-11-21 09:54:34

是資料夾喔,而且是隱藏的,DOS下是看不到這些資料夾的,Del不能這樣用
執行
cmd
cd\windows
DIR /a:h $*.* '說明DIR 隱藏含$開頭的檔案與資料夾
DIR /a:h $*.* | FIND "$" > D:\A1.txt '說明DIR 隱藏含$開頭的檔案與資料夾,建立到一個叫A1.txt 文字檔裡,放在D:的跟目錄
打開 A1.txt 這些就是你要刪除的 $ 字號開頭的隱藏資料夾
如果要刪除這些資料夾,你一定要先將隱藏的屬性拿到,才能處理
用檔案總管的資料夾選項-->檢視,隱藏檔案與資料夾,改成顯示
最快的方式,就是直接用檔案總管,點選要刪除的資料夾,就OK了。
如果實驗性的想寫一個批次檔處理,可以參考這篇說明
http://ithelp.ithome.com.tw/question/10014041?aid=37330#37330
要將隱藏資料夾的屬性拿到,可以用 Attrib $*.* -H /s /d 這個命令

16
jsperng
iT邦研究生 1 級 ‧ 2008-11-21 12:19:29

將下列程式碼存成 .vbs 在用檔案總管雙擊,XP以後的都有支援 Windows host script,希望對你有幫助。

<pre class="c" name="code">
'目的:刪除指定目錄內之$開頭之子目錄
'日期:2008/11/21
Dim fso, oFld, oSubFlds, oSubFld
'------------------------------------
Set fso = CreateObject("Scripting.FileSystemObject") '建立 FileSystemObject 物件
'------------------------------------
Set oFld = fso.GetFolder("D:\Test") '傳回對應到指定路徑中資料夾的 Folder 物件,請自行改為 C:\Windows
Set oSubFlds = oFld.SubFolders '傳回 Folder 物件的子目錄集合,其中包含設定隱藏和系統檔案屬性的資料夾
'------------
For Each oSubFld in oSubFlds '逐一取出子目錄集合內的子目錄
	If Left(oSubFld.name,1) = "$" Then '比較子目錄第一個字元為$
		oSubFld.attributes = 0 '變更目錄屬性為一般

		For each oFile in oSubFld.files '逐一取出子目錄內的檔案
			oFile.attributes = 0 '變更檔案屬性為一般
		Next

		fso.DeleteFolder(oSubFld) '刪除子目錄
	End If
Next
'---End---

我要發表回答

立即登入回答