概要
vbsの作法、調べてみた。
練習問題やってみた。
練習問題
vbsで、shellを書け。
サンプルコード
Dim fso
Dim shell
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
Do
WScript.StdOut.Write "コマンドを入力してください:"
scr = Wscript.StdIn.ReadLine
If scr = "exit" Then
Exit Do
ElseIf scr = "ls" Then
targetPath = "C:\Users\ohisa\vbs"
Set folder = fso.GetFolder(targetPath)
WScript.Echo "フォルダ: " & folder.Path
WScript.Echo "--- ファイル ---"
For Each file In folder.Files
WScript.Echo " " & file.Name
Next
WScript.Echo "--- サブフォルダ ---"
For Each subfolder In folder.SubFolders
WScript.Echo " " & subfolder.Name
Next
ElseIf scr = "pwd" Then
WScript.Echo "現在のディレクトリ: " & shell.CurrentDirectory
ElseIf scr = "cd" Then
WScript.Echo "変更前: " & shell.CurrentDirectory
shell.CurrentDirectory = "C:\Users\ohisa\vbs"
WScript.Echo "変更後: " & shell.CurrentDirectory
ElseIf scr = "cat" Then
filePath = "C:\Users\ohisa\vbs\shell0.vbs"
If fso.FileExists(filePath) Then
Set file = fso.OpenTextFile(filePath, 1)
WScript.Echo file.ReadAll
file.Close
Else
WScript.Echo "ファイルが見つかりません: " & filePath
End If
Else
msgbox "error : " & src
End if
Loop
実行結果
>cscript shell0.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
コマンドを入力してください:ls
フォルダ: C:\Users\ohisa\vbs
--- ファイル ---
auction.vbs
db0.vbs
db1.mdb
db1.vbs
den.vbs
forth.vbs
ie4.vbs
ie5.vbs
ie6.vbs
ie7.vbs
ie8.vbs
ie9.vbs
inputText.txt
join.vbs
Microsoft Ayumi.wav
ni.vbs
office.txt
ore.vbs
ore2.vbs
path.txt
rnd.vbs
shell0.vbs
sin0.vbs
split.vbs
test10.vbs
test11.vbs
test9.vbs
url.vbs
wav.vbs
win0.vbs
win1.vbs
--- サブフォルダ ---
コマンドを入力してください:pwd
現在のディレクトリ: C:\Users\ohisa\vbs
コマンドを入力してください:cd
変更前: C:\Users\ohisa\vbs
変更後: C:\Users\ohisa\vbs
コマンドを入力してください:cat
Dim fso
Dim shell
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
Do
WScript.StdOut.Write "コマンドを入力してください:"
scr = Wscript.StdIn.ReadLine
If scr = "exit" Then
Exit Do
ElseIf scr = "ls" Then
targetPath = "C:\Users\ohisa\vbs"
Set folder = fso.GetFolder(targetPath)
WScript.Echo "フォルダ: " & folder.Path
WScript.Echo "--- ファイル ---"
For Each file In folder.Files
WScript.Echo " " & file.Name
Next
WScript.Echo "--- サブフォルダ ---"
For Each subfolder In folder.SubFolders
WScript.Echo " " & subfolder.Name
Next
ElseIf scr = "pwd" Then
WScript.Echo "現在のディレクトリ: " & shell.CurrentDirectory
ElseIf scr = "cd" Then
WScript.Echo "変更前: " & shell.CurrentDirectory
shell.CurrentDirectory = "C:\Users\ohisa\vbs"
WScript.Echo "変更後: " & shell.CurrentDirectory
ElseIf scr = "cat" Then
filePath = "C:\Users\ohisa\vbs\shell0.vbs"
If fso.FileExists(filePath) Then
Set file = fso.OpenTextFile(filePath, 1)
WScript.Echo file.ReadAll
file.Close
Else
WScript.Echo "ファイルが見つかりません: " & filePath
End If
Else
msgbox "error : " & src
End if
Loop
コマンドを入力してください:exit
以上。