タグ

バッチファイルに関するdelegateのブックマーク (9)

  • 「%~dp0」を理解すれば、Windowsバッチ中でディレクトリ名やファイル名を自由に使えるから便利

    Windowsバッチを作成する際、もしくは、他の人が作ったWindowsバッチでよく出てくるのが、「%~dp0」みたいな記述。 「%」とか「~」沢山あって、何がなんだか分からない~!と毎回調べることになるので、ここにまとめておきます。 ちなみに、分からなくなったら、コマンドプロンプトを開いて、「help for」と打ってReturnすると、ヘルプメッセージが表示されるので、大体は確認できます。 「%~dp0」の意味は? さて、最初に、「%~dp0」を読み解くことにしましょう。 そもそも、Windowバッチでは、「%0」や「%1」など、「%数字」は、引数を表し、「0」は特別に、そのバッチファイル自身、それ以降は第一引数、第二引数となります。 バッチ名が「TEST_MAIN.bat」だった場合、 「TEST_MAIN.bat aaa bbb」を実行すると、 「%」と「0」に挟まれた「~dp」の

    「%~dp0」を理解すれば、Windowsバッチ中でディレクトリ名やファイル名を自由に使えるから便利
  • Windowsのバッチファイルの基本的な使い方【Windows 10/11】

    対象OS:Windows 10/Windows 11、Windows Server 2012/Windows Server 2012 R2/Windows Server 2016/Windows Server 2019/Windows Server 2022 ファイルのコピーやバックアップ、システムの設定変更、連続するツールやコマンドの実行、フィルタ処理など、コマンドプロンプト上でいつも決まった処理を手動で繰り返していることはないだろうか? そのような場合、Windows OSではそれらの処理を「バッチファイル」にまとめておくと、同じ手順を簡単に繰り返し実行できるようになる。 ただ、バッチファイルには固有の(クセがあるといってもいい)機能や制限などが幾つかあり、慣れるまでは細かい所でつまづきがちだ。 そこでTech TIPSでは基的なバッチファイルの作成/利用方法についてまとめておく。

    Windowsのバッチファイルの基本的な使い方【Windows 10/11】
  • Windows、バッチファイルでエラーレベルが取れない。(遅延環境変数の展開)|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~

    バッチファイルのエラー処理で微妙にハマりました。 ファイルをコピーして、その結果を%errorlevel%で判定していたのですがね。 SETLOCAL @COPY C:\A.txt Z:\B.txt IF %ERRORLEVEL% NEQ 0 ( ECHO エラー。 EXIT ) ENDLOCAL これはOK。 次に以下のテキストファイルを用意してループさせてコピーした所・・ コピーできなくてもエラーレベルが変わらない(#゚д゚) ◆テキストファイルの中身(text.txt) C:\B.txt C:\C.txt Z:\D.txt ◆コード SETLOCAL FOR /F "delims=" %%a IN (C:\text.txt) DO ( @COPY C:\A.txt %%a IF %ERRORLEVEL% NEQ 0 ( ECHO エラー。 ) ) ENDLOCAL なんでだぁ<( ̄◇

  • バッチファイルでよく使う書き方まとめ - Qiita

    解説 目的1: 「バッチファイル自身のコンテキスト」と「呼び出し元のコンテキスト」を混同しない、汚染しない setlocal で set 文による環境変数のローカル化(呼び出し元を汚染しない) pushd "%~dp0" でこのバッチファイルのディレクトリに移動し、最後に popd で撤収。こうすればこのバッチファイルの存在するディレクトリを基点として、周辺のファイルに相対パスでアクセスできる 目的2: 表示をすっきりさせる @echo off で「実行されるコマンド」が標準出力に出るのを抑止する(これしないと画面が見辛い) 目的3: 実行結果を読む pause を実行させてキーを押すまで画面を停止させる(これしないとダブクリで実行した時にすぐにウィンドウが消えて何が起きたのかわからない) テンプレート(2) 引数を受け取るバッチファイル バッチファイルでコマンドを作る時に使うテンプレート

    バッチファイルでよく使う書き方まとめ - Qiita
  • (バッチ)32bitか64bitか判断する | old_3流プログラマのメモ書き

    バッチファイルで、今バッチを実行しているOSがx86(32bit)なのかx64(64bit)なのか判断したいと思いました。 で、ググると、バッチファイルで64ビットと32ビット違うコマンドを実行するにドンピシャな情報が。。 コピペですが、以下のバッチで判断できるようです。 @echo off if "%PROCESSOR_ARCHITECTURE%" EQU "x86" ( echo "x86" ) if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" ( echo "x64" ) pause

    (バッチ)32bitか64bitか判断する | old_3流プログラマのメモ書き
  • BATファイルで環境変数を設定ファイルから読み込む方法2つ - くんすとの備忘録

    概要 WindowsのBATファイル(*.bat)で、環境変数を外部ファイルから読み込む方法を2通り解説します。 DLLなどは不要です。 方法①:外部BATファイルにSETコマンドを書く 設定ファイルとしてBATファイルを用意し、CALLコマンドで取り出します setting.bat (環境設定ファイル) SET MYENV=HOGEHOGE SET MYENV2=%MYENV%___2 test.bat (実行用BATファイル) @echo off REM 設定ファイルの読み込み CALL setting.bat ECHO %MYENV% ECHO %MYENV2% 実行すると、こうなります HOGEHOGE HOGEHOGE___2 方法②:外部テキストファイルに書き、FOR文で取り出す 設定ファイルとしてテキストファイルを用意し、FOR /Fで取り出します setting.txt (

    BATファイルで環境変数を設定ファイルから読み込む方法2つ - くんすとの備忘録
  • ゼロからはじめるバッチプログラミング - 環境変数編

    環境変数とは バッチファイルは、事前に用意されているコマンドやアプリケーションを、あらかじめ記述したコマンドの手順に従って実行することが主な役割ですが、状況に依存した条件を処理に組み込みたい場合は、内容が複雑になり、プログラミングのような構造的な流れが発生します。このような、状況に依存して実行するコマンドや値を選択しなければならないバッチ処理を実現するには、利用者との対話やコマンドの結果なる値などをバッチファイルの実行時に取得しなければなりません。 バッチファイルの記述時ではなく、実行時に何らかの値を得るには、その値を保存する方法が必要になります。バッチファイルに直接記述された整数や文字列は、何度実行してもその値が変化することはありません。これに対して、実行時に状況に従って渡される環境変数と呼ばれる動的な情報があります。環境変数は、一般的なプログラミング言語における変数のようなもので、あら

  • バッチメモ(Hishidama's bat-file Memo)

    実行方法 引数の注意点 [2013-03-05] 定石 書き方 @echo off 別バッチの実行方法 [2007-03-07] タイトル変更方法 [2009-11-14] バッチの場所取得 [2009-11-14] 変数 バッチの戻り値 注意点 [/2007-06-15] 標準入力 [2007-10-26] 実行方法 バッチファイルの拡張子をbatにしておく。 このファイルがある場所を環境変数PATHに追加しておくか、ファイルのある場所まで移動して、 コマンドラインからファイル名を入力するか、拡張子を除いた部分を入力することによって バッチを実行する。 またはフルパスでファイル名を入力する。 ディレクトリやファイル名にスペースが入っている場合は、全体をダブルクォーテーションでくくらないと、スペースの所で区切られてしまう。(コマンド用のファイル名にスペースを入れることはあまり無いだろうが…

  • 碧落 - 知られざるバッチファイル

    概要 この記事は Windows の「バッチファイル」ついて、 あまり一般的でない変な切り口で説明しています。 バッチファイルは MS-DOS の頃から存在し、 互換性を維持したまま Windows とともに進化しています。 この記事では、過去と互換性の無い新しい機能をむしろ積極的に使って、 書きやすく読みやすいバッチファイルを書くための知識を紹介したいと思います。 動作に必要な条件は正確には調べていませんが、 Windows 2000 以降で動作すると思います。 バッチファイルとは バッチファイル (Batch File) とは、 一括して実行したい処理の内容を書いたファイルを指します。 バッチファイルに連続して実行するべき命令をあらかじめ記しておくと、 後で記述した命令を「再生」できます。 この仕組みは定型的な命令を手軽にかつ確実に連続実行するのに役立ちます。 MS-DOS は UNI

  • 1