2016-09-12 9 views
0

以下は、小さなVBスクリプトで、フォルダ内のファイルを圧縮する必要があります。 私はVBスクリプトを初めて使用しています。VBスクリプトプログラムのZipファイルへの明確化エラーメッセージ

Set objArgs = WScript.Arguments 
InputFolder = objArgs(0) 
ZipFile = objArgs(1) 
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) 
Set objShell = CreateObject("Shell.Application") 
Set source = objShell.NameSpace(InputFolder).Items 
objShell.NameSpace(ZipFile).CopyHere(source) 
wScript.Sleep 2000 

ここにスクリプトがあります。 Batch file script to zip files

私は、次の

CScript zipt.vbs ..\AFolder AFolder.zip 

でスクリプトを実行し、私は次のエラーを取得する:

zipIt.vbs(6, 1) Microsoft VBScript runtime error: Object required 
: 'objShell.NameSpace(...)' 

..\AFolderは空ではありません。 zipファイルが作成され、空です。

スクリプトのデバッグでは、この行にエラーがあります。

Set source = objShell.NameSpace(InputFolder).Items 

エラーメッセージは何を意味していますか?

+1

[コマンドライン引数 - 必要なオブジェクト: 'objshell.NameSpace(...)']の重複している可能性があります(http://stackoverflow.com/questions/12713740/command-line-arguments-object-required-objshell-名前空間) –

答えて

1

this questionに基づいて、これを試してみてください。

Set objArgs = WScript.Arguments 
Set fso = CreateObject("Scripting.FileSystemObject") 
InputFolder = fso.GetAbsolutePathName(WScript.Arguments.Item(0)) 
ZipFile = fso.GetAbsolutePathName(objArgs(1)) 
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) 
Set objShell = CreateObject("Shell.Application") 
Set source = objShell.NameSpace(InputFolder).Items 
objShell.NameSpace(ZipFile).CopyHere(source) 
wScript.Sleep 2000 

を明確にするために、スクリプトは基本的に「AFolder.zipは」それは全体の、絶対パスを必要としそうだったのか分かりませんでした。