テクノロジー

Windows標準でできるプログラミング

handa's icon'
  • handa
  • 2020/01/28 12:46
Content image
Visual Studio 2017 Pro

0. 概要

 Windows10PCを買ってきて、「Visual Studio」などの開発環境を導入しなくても、プログラミングをすぐ始められます。ブラウザの「Edge」が入っているので、HTMLやJavaScriptはできるわけですが、それを除いた話です。

 すぐ使える言語は、次の4つです。

1. バッチ

2. VBScript

3. PowerShell

4. C#

1. バッチ

 バッチは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は間違ったコマンドです。
Content image
上記バッチの実行結果

 コマンドの実行結果はerrorlevelという特殊な変数に返却されるので、errorlevelが0なら正常、1なら異常とわかります。ちなみに、存在しないコマンドを実行すると9009が返ります。

2. VBScript

 VBScriptは一時期使われましたが、PowerShellが登場したためほぼ廃れました。以下は現在時刻を表示するプログラム(jikoku.vbs)です。

WScript.Echo "今の時刻は" & Now & "です。"
Content image
wcript.exeまたはcscript.exeを使います

3. PowerShell

 比較的新しい言語です。バッチの正当な後継として、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 '題名' '本文' ''

4. C#

 まず、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) + "です。");
   }
}

以下のようにコンパイル・実行します。

Content image
exeができます

コンパイルすると、エラーがなければちゃんとexeができています。Visual Studioがなくてもexeができるとは、ちょっと感動してしまいますね。

 

ぜひバッチ、VBScript、PowerShell、そしてC#で遊んでみてください。お金かからないので!

 

以上


 

Supporter profile iconSupporter profile iconSupporter profile iconSupporter profile icon
Article tip 4人がサポートしています
獲得ALIS: Article like 50.55 ALIS Article tip 133.30 ALIS
handa's icon'
  • handa
  • @handa
コンピュータシステムの開発、子供向けプログラミング教室などを行っています。

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
テクノロジー

彼女でも分かるように解説:ディープフェイク

Like token Tip token
32.10 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
テクノロジー

オープンソースプロジェクトに参加して自己肯定感を高める

Like token Tip token
85.05 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

ブロックチェーンの51%攻撃ってなに

Like token Tip token
0.00 ALIS
Eye catch
テクノロジー

なぜ、素人エンジニアの私が60日間でブロックチェーンゲームを制作できたのか、について語ってみた

Like token Tip token
270.93 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS