0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

vbsの作法 その104

Posted at

概要

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



以上。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?