Scripts Comparison
「あの処理はあのスクリプト言語でどう書くの?」のまとめ。Windows 向けのスクリプト言語多め。
目次
Call From Windows Batch
Windows Batch から各スクリプトを呼び出す方法。
Rem 同プロセスで呼ぶ
Call "script.bat"
Rem 別プロセスで呼ぶ
Start "script.bat"
Rem PowerShell を呼び出す
PowerShell.exe -ExecutionPolicy RemoteSigned -F "script.ps1"
Rem Msys Bash を呼び出す場合
"C:\msys\bin\sh.exe" --login -i "script.sh"
Rem VBScript を呼び出す場合
CScript //NoLogo //E:VBScript "script.vbs"
Rem JScript を呼び出す場合
CScript //NoLogo //E:JScript "script.js"
Rem コンパイルした exe ファイルが存在していたら削除する
If Exist "script.exe" ( Del "script.exe" )
Rem コンパイラでコンパイルする
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" "script.vb"
Rem コンパイルできたら実行する
If "%ERRORLEVEL%" == "0" ( "script.exe" )
Rem コンパイルした exe ファイルが存在していたら削除する
If Exist "script.exe" ( Del "script.exe" )
Rem コンパイラでコンパイルする
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe" "script.js"
Rem コンパイルできたら実行する
If "%ERRORLEVEL%" == "0" ( "script.exe" )
Rem コンパイルした exe ファイルが存在していたら削除する
If Exist "script.exe" ( Del "script.exe" )
Rem コンパイラでコンパイルする
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" "script.cs"
Rem コンパイルできたら実行する
If "%ERRORLEVEL%" == "0" ( "script.exe" )
Template
オレオレテンプレート。
@Echo Off
Rem ココにコード
Pause
Exit /b
# ココにコード
Read-Host Please Enter key to continue...
Exit
#!/bin/bash
# ココにコード
read -p "Please any key to continue... " -n 1
exit
Option Explicit
' ココにコード
WScript.Echo("Please Enter key to continue...")
WScript.StdIn.ReadLine()
WScript.Quit()
// ココにコード
WScript.Echo("Please Enter key to continue...");
WScript.StdIn.ReadLine();
WScript.Quit();
Imports System
Module Module1
Sub Main()
' ココにコード
Console.WriteLine("Please Enter key to continue...")
Console.ReadKey()
Environment.Exit(0)
End Sub
End Module
import System;
// 即時関数は必須ではないけど…
(function() {
// ココにコード
Console.WriteLine("Please Enter key to continue...");
Console.ReadKey();
Environment.Exit(0);
})();
using System;
class CSharp {
public static void Main() {
// ココにコード
Console.WriteLine("Please Enter key to continue...");
Console.ReadKey();
Environment.Exit(0);
}
}
Echo
コンソールに文字列を出力する。
Echo FooBar
Echo ほげピヨ
Write-Output FooBar
Write-Host ほげピヨ
echo FooBar
echo ほげピヨ
WScript.Echo("FooBar")
Wscript.StdOut.Write("ほげピヨ")
' カッコがなくても OK
WScript.Echo "FooBar"
Wscript.StdOut.Write "ほげピヨ"
WScript.Echo("FooBar");
Wscript.StdOut.Write("ほげピヨ");
Imports System
Console.WriteLine("FooBar")
Console.WriteLine("ほげピヨ")
import System;
print("FooBar");
Console.WriteLine("ほげピヨ");
using System;
Console.WriteLine("FooBar");
Console.WriteLine("ほげピヨ");
Sleep
指定時間処理を一時停止する。3秒停止させるサンプル。
Ping localhost -n 4
Timeout 3
Rem sleep.exe を持っていれば
Sleep 3
Start-Sleep -s 3
sleep 3
WScript.Sleep(3000)
WScript.Sleep(3000);
Imports System
System.Threading.Thread.Sleep(3000)
import System;
System.Threading.Thread.Sleep(3000);
using System;
System.Threading.Thread.Sleep(3000);
Pause
ユーザからのキー入力を待つ。
Pause
Rem => 続行するには何かキーを押してください . . .
Read-Host "続行するには Enter キーを押してください。"
read -p "続行するには何かキーを押してください。" -n 1
WScript.Echo "続行するには Enter キーを押してください。"
WScript.StdIn.ReadLine
WScript.Echo("続行するには Enter キーを押してください。");
WScript.StdIn.ReadLine();
Imports System
Console.WriteLine("続行するには Enter キーを押してください。")
Console.ReadLine()
import System;
Console.WriteLine("続行するには Enter キーを押してください。");
Console.ReadLine();
using System;
Console.WriteLine("続行するには Enter キーを押してください。");
Console.ReadLine();
Comment
スクリプト内でのコメント。
Rem コメント
:: コロン「:」はラベルを表すのでコメント代わりに使える
# 1行コメント
<# 複数行コメント
終わり #>
# コメント
' シングルクォートでコメント
// 1行コメント
/* 複数行コメント
終わり */
' シングルクォートでコメント
''' ドキュメントコメント
// 1行コメント
/* 複数行コメント
終わり */
/// ドキュメントコメント
// 1行コメント
/* 複数行コメント
終わり */
/// ドキュメントコメント