2017-03-06 18 views
0

VBScriptを使用して圧縮されたフォルダを削除しようとしています。 zipファイルには他のフォルダとファイルもあります。VBSフォルダをZippedフォルダから削除します

編集開始:基本コードをされてから:How to delete files from zip with VBScript エンド編集ここ

は、私はそれを削除しようとしたスクリプトのローカライズされたサンプルです:

悲しいこと
zipfile = "D:\testFolder\zippers\TestIt\New folder\your.zip" 
foldername = "New folder" 
destination  = "D:\testFolder\zippers\TestIt\New folder" 

Set app = CreateObject("Shell.Application") 
For Each f In app.NameSpace(zipfile).Items 
    If f.Name = foldername Then 
    app.Namespace(destination).MoveHere f, FOF_NOCONFIRMATION 
    End If 
Next 

Set fso = CreateObject("Scripting.FileSystemObject") 
fso.DeleteFolder fso.BuildPath(destination, foldername), True 

、ZIPの遺跡内のフォルダ。だからMoveHereはCopyHereの代わりに見える...変わった

誰でも助けてくれますか? PS:delete-folderタグはありません。ファイルを削除するだけです...

答えて

1

someone else's codeをコピーしているときに適切な帰属を与えていただければ幸いです。

これは、Shell.Applicationオブジェクトがzipアーカイブからフォルダを削除できるようには見えません。フォルダにMoveFileを呼び出すと、そのネストされたフォルダのすべてのファイルがアーカイブから移動されますが、空の(サブ)フォルダツリーが残ります。ネストされたフォルダを削除するには

完全にあなたが7-zipのようなサードパーティ製のツールを使用する必要があります。

そのことについて申し訳ありません
Function qq(s) : qq = """" & s & """" : End Function 

Set sh = CreateObject("WScript.Shell") 
sh.Run "C:\path\to\7z.exe d " & qq(zipfile) & " " & qq(foldername), 0, True 
+0

。あなたは正しいです、私はちょうどそれを改ざんを開始する前に、私はベースコードをどこから覚えていない... 彼のおかげでありがとうが、悲しいことに、私はサードパーティのプログラムなしでこれをやろうとしている、そうでなければ私ちょうど7zipを使用します。ああ、難しいチャレンジよりも;)おかげです。 –

関連する問題