Windows10PCを買ってきて、「Visual Studio」などの開発環境を導入しなくても、プログラミングをすぐ始められます。ブラウザの「Edge」が入っているので、HTMLやJavaScriptはできるわけですが、それを除いた話です。
すぐ使える言語は、次の4つです。
1. バッチ
2. VBScript
3. PowerShell
4. C#
バッチはWindowsがまだなかった頃、MS-DOSの時代から使われ続けており、今はPowerShellに代替されつつありますがまだ現役です。以下は、dirコマンドの引数が正しいか調べるプログラム(test.bat)です。
@echo off
dir /z
if %errorlevel%==1 goto l_ng
:l_ok
echo dir /zは正しいコマンドです。
goto :eof
:l_ng
echo dir /zは間違ったコマンドです。
コマンドの実行結果はerrorlevelという特殊な変数に返却されるので、errorlevelが0なら正常、1なら異常とわかります。ちなみに、存在しないコマンドを実行すると9009が返ります。
VBScriptは一時期使われましたが、PowerShellが登場したためほぼ廃れました。以下は現在時刻を表示するプログラム(jikoku.vbs)です。
WScript.Echo "今の時刻は" & Now & "です。"
比較的新しい言語です。バッチの正当な後継として、Windowsのいろいろな操作を自動化できるように作られています。以下はメールを送信するプログラム(mail.ps1)です。
param([string] $SMTPServer, [string] $Port, [string] $User, [string] $Password, [string] $From, [string] $To, [string] $Subject, [string] $Body, [string] $File);
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $Port);
$SMTPClient.DeliveryMethod = [Net.Mail.SmtpDeliveryMethod]::Network;
$SMTPClient.Credentials = New-Object Net.NetworkCredential($User, $Password);
# メールメッセージの作成
$MailMassage = New-Object Net.Mail.MailMessage($From, $To, $Subject, $Body);
# ファイル添付(あれば)
if ($File -ne "")
{
$Attachment = New-Object Net.Mail.Attachment($File);
$MailMassage.Attachments.Add($Attachment);
}
# メールメッセージを送信
$SMTPClient.Send($MailMassage);
これを、以下のように呼び出せばメールを送信できます。
powershell -executionPolicy RemoteSigned D:\temp\mail.ps1 mailserver.jp 587 mailusername mailpasswd 'from@hoge.jp' to@hoge.jp '題名' '本文' ''
まず、c#compile.batというバッチを作ります。(バッチが現役の証明)
@echo off
set CPATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319
set SRC=%1
set BIN=%SRC:.cs=.exe%
set dllPaths=system.dll,system.drawing.dll,system.windows.forms.dll,system.io.dll,System.Reflection.dll
%CPATH%\csc.exe /optimize+ /out:%BIN% %SRC% /r:%dllPaths%
echo %ERRORLEVEL%
if %errorlevel%==1 echo エラーが発生しました。
C#ソース(plus.cs)を書きます。
using System;
class Calc{
static void Main(){
Console.WriteLine("1+2=" + (1 + 2) + "です。");
}
}
以下のようにコンパイル・実行します。
コンパイルすると、エラーがなければちゃんとexeができています。Visual Studioがなくてもexeができるとは、ちょっと感動してしまいますね。
ぜひバッチ、VBScript、PowerShell、そしてC#で遊んでみてください。お金かからないので!
以上