search
テクノロジー

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
Article registration Article registration
handa's icon'
  • handa
  • @handa
コンピュータシステムの開発、子供向けプログラミング教室などを行っています。

投稿者の人気記事
コメントする
Loading...
コメントする
こちらもおすすめ!
Eye catch
クリプト

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

otakucoin 2021/03/29
Like token Tip token
121.79 ALIS
Eye catch
ゲーム

ドラクエで学ぶオーバフロー

keiju togashi 2020/03/12
Like token Tip token
30.10 ALIS
Eye catch
クリプト

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

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
テクノロジー

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

ゆうき 2020/08/12
Like token Tip token
270.93 ALIS
Eye catch
他カテゴリ

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

nonstop-iida 2020/03/04
Like token Tip token
124.82 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

池田らいく 2021/04/04
Like token Tip token
18.92 ALIS
Eye catch
テクノロジー

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

Jimmy 2020/03/17
Like token Tip token
32.10 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

昆布森ちゃん 2021/01/19
Like token Tip token
38.31 ALIS
Eye catch
クリプト

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

CryptoChick 2020/03/07
Like token Tip token
159.32 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

ALISブロックチェーンブログ 2018/07/03
Like token Tip token
5.00 ALIS
Eye catch
クリプト

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

大田コウキ 2021/04/06
Like token Tip token
947.13 ALIS
Eye catch
テクノロジー

iOS15 配信開始!!

IMAKARA 2021/09/23
Like token Tip token
7.20 ALIS