Windows - Windowsのメモ

バッチファイル

全ての引数を空白で結合する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
echo off   
set SENTENCE=

:check
if "%1" == "" goto final
set SENTENCE=%SENTENCE% %1
shift
goto check

:final
echo %SENTENCE%

実行結果:

D:\ng\home\esximatalk\_static>join_white_space.bat ham spam egg

D:\ng\home\esximatalk\_static>echo off
 ham spam egg
D:\ng\home\esximatalk\_static>

バッチファイル自身のあるフォルダへのパスを取得する

バッチファイル自身のあるフォルダへのパスを取得したいことがあります。 Python で言うと次のような処理です。:

import os.path
os.path.dirname(__file__)

バッチファイルではこのように書きます。:

> %~dp0

移動したければ cd の引数として渡します。:

> cd %~dp0

dp というのには意味があり、他の文字を指定することで、別のデータを取得できます。

記号 意味
f ファイルへのフルパス
d ドライブ
p 格納されているフォルダへのパス
n ファイル名
x 拡張子
s 省略形 (sは単独では使えません)
$\S+: 変数で指定したフォルダから探して最初見つかったファイルへのフルパス

\S+ のところは変数名です。置き換えてください。

参考

http://d.hatena.ne.jp/fuzzhead/20080930/p1

エラー報告を表示させないようにする

プログラムが不正終了するとWindowsはエラー報告ダイアログを表示して、 Microsoftへの報告を要求してきます。 これはあまり有効な時がありません。

処理を自動化していて何らかの理由で中で読んでるプログラムが不正終了した場合、 このダイアログが出てきます。 このダイアログのタチの悪いところはOKボタンを押さないと消えないということです。 その為そこで処理が止まってしまいます。

何ともウザいのでエラー報告ダイアログを出力しないようにします。

  1. マイコンピュータを右クリックしプロパティを選択します。

    システムのプロパティダイアログが表示されます。

  2. システムのプロパティダイアログの詳細設定タブを選択します。

  3. エラー報告ボタンを押下します。

  4. エラー報告を無効にするを選択し、OKを押下します。

これでエラー報告が出なくなります。

目次

前のトピックへ

シーケンス図

次のトピックへ

ISSUE

このページ

inserted by FC2 system