MS-DOS、あるいはPC-DOSが共通で持っているスクリプト機能: バッチ。
機能はとても貧弱で、使い物にならないと思っているあなた!
でも結構、強力なのですよ。たとえWindows95上でもね,,,。
日付と時間を表示するだけのバッチ
@echo off
date|ver
time|ver
ポイントは、verコマンドが単にその出力として最初に改行だけを返すという所。
Return
Pathの使い方
@echo off
Rem Serch commands from PATH environment variable
if .%1.==.. goto usage
for %%f in (%path%) do if exist %%f\%1.* echo '%%f\%1' may executable
goto ende
:usage
echo %0 {command name}
:ende
注: Windows95では付属のCommand.comでないとまともに動作しない。
Return
コマンドオプション
@echo off
for %%f in (-m -M) do if .%%f.==.%1. echo OK to '-m' option
goto ende
:ende
単に大文字と小文字を区別しない、というだけです。はい
Return
コマンドに自動応答
echo y | del c:\temp\*.* > nul:
これを応用すれば、「最近使ったファイル」を起動時に自動クリアできます。
Autoexec.batに下のように入れてあるだけなんですけどね。
For %%f in (C:\Recycled\*.*) Do Del %%f
For %%f in (C:\Win95\Recent\*.*) Do Del %%f
注:Windows95の設定により、ディレクトリ名が違ってきます
Return
サブルーチンを使う
@Echo off
Rem Subroutine call
If .%1.==.$Sub1. Goto %1
If .%2.==.. Goto Usage
For %%f in (%2 %3 %4 %5 %6 %7 %8 %9) Do Call %0 $Sub1 %1 %%f
Goto Ende
:$Sub1
Choice Execute '%2 %3'
If errorlevel 2 Goto Ende
%2 %3
Goto Ende
:Usage
Echo %0 {Command_Name} {Filename(Wild cards)}
Echo: Do specified command with confirmation.
:Ende
Callを使うのがみそです
Return
Windowsコマンドとの連携
@Echo off
Rem If you want to play .WAV, use SNDREC32 insted.
If .%1.==.. %0 %0 *.mid;*.rmi
If .%1.==./?. Goto Usage
If .%1.==.%0. shift
For %%f in (%1;%2;%3;%4) Do Start/Wait MPlayer /Play /Close %%f
Goto Ende
:Usage
Echo %0 MIDI file auto player
Echo: ex. %0 *.mid;*.rmi
:Ende
Startコマンドと%0の使い方がポイント、かな?
Return
#どれもForコマンドの応用やんか!と思ったあなた、正解です(^^;
でも結構使えるでしょう?