Windowsバッチ

日付フォルダを作成する


mkdir %DATE:/=%

IPMSGでいたずら

@echo off
for /l %%A in (1,1,10) do ipmsg.exe /MSG /SEAL localhost Hello.
pause

大量にでてきます。っていってもこの例は控えめなので10枚ですが。

日付

  • 日付取得
%date% → 2010/01/30
%time% → 11:29:00.00
%date% → 土 2010/01/30
%date:~0,4%%date:~5,2%%date:~8,2% → 20100130 ※ Win2000 NG
%date:~-10,4%%date:~-5,2%%date:~-2,2% → 20100130 ※ Win2000 OK

  • 文字列の切り出し
C:\>set V=ABCDEFGHIJKL
C:\>echo %V:~5,2%
FG
書式  意味  例
%V%  変数Vの値全体  %V% ⇒「ABCDEFGHIJKL」
%V:~m%  m文字目から、最後まで  %V:~5% ⇒「FGHIJKL」
%V:~m,n%  m文字目から、n文字分  %V:~5,2% ⇒「FG」
%V:~m,-n%  m文字目から、最後のn文字分を除いたもの  %V:~5,-2% ⇒「FGHIJ」
%V:~-m%  後ろからm文字目から、最後まで  %V:~-5% ⇒「HIJKL」
%V:~-m,n%  後ろからm文字目から、n文字分  %V:~-5,2% ⇒「HI」
%V:~-m,-n%  後ろからm文字目から、最後のn文字分を除いたもの  %V:~-5,-2% ⇒「HIJ」
%V:c1=c2%  文字c1を文字c2に置換する。それぞれ複数の文字を指定することも可能  %V:ABC=abc% ⇒「abcDEFGHIJKL」

  • 時刻
time 1:23
%time:~0,2%%time:~3,2%%time:~6,2% → 「 11204」
set time2=%time: =0%
%time2:~0,2%%time2:~3,2%%time2:~6,2% → 「011204」

  • 一日前の日付を計算
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は%yy%年、%mm%月、%dd%日です。
echo.
rem 1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)

うげぇ、バッチファイルで日付操作すんのめんどくさー。
VBSで書いた方がよさそうだな。

ビープ音

  1. 「echo a」などと書かれたバッチファイルを用意する。
  2. 適当なバイナリエディタ(例えばQuickBe)で「a」の部分の文字コードを「07」に変更する。
  3. 実行する。

サーバに何か異常があった場合に知らせるとかに使えないかなぁ。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2017年04月06日 23:14