タグ

batに関するtoa1121011のブックマーク (12)

  • 【Windowsバッチ・DOS】バッチファイルの環境変数スコープあれこれ - packpak’s diary

    Windowsユーザーならみんなbatファイル好きだよね。 一度ははまるであろう環境変数のスコープについてあれこれをまとめる。 setコマンド set 一時環境変数名=値 環境変数を一時設定する。 実行したコマンドプロンプト内でのみ有効。 (他のプロセスからは見えない。該当プロセスから立ち上がった子プロセスはスコープを引き継ぐ。コマンドプロンプト落とすと消える。) ちなみに、ユーザー環境変数とかシステム環境変数といったものを恒久的に変えたければsetxコマンドを使うそうだ。 setlocalとendlocal 「バッチの中だけでスコープ切りたい!」ってときに使えるコマンド。 set X=outscope setlocal echo %X% rem outscopeと表示される set X=inscope echo %X% rem inscopeと表示される endlocal echo %X

    【Windowsバッチ・DOS】バッチファイルの環境変数スコープあれこれ - packpak’s diary
  • バッチファイルから別のバッチファイルのサブルーチンを呼び出す方法 : CrackHome

  • Windows バッチに JScript・VBScript・Oracle SQL スクリプトを混在させてバッチ処理の中で実行する - Corredor

    2016年も終わりに近付いている昨今、今更ですが Windows バッチの黒魔術的な挙動にハマっていて、レガシーな職場で培ったレガシーな知識の総決算をしておこうかなと思うなど。 Windows バッチスクリプトを置いておく GitHub リポジトリを作っていますので、よかったらご覧ください。 GitHub - Neos21/windows-batch-scripts: ちょいと便利な Windows バッチ製のスクリプトやスニペット集 今日はその中から、Windows バッチファイル1つの中に、別の言語のスクリプトを混在させて実行する手法をいくつか紹介する。 JScript を混在させる Shebang VBScript を混在させる技 Oracle DB に渡す SQL ファイルを混在させ SQL*Plus を起動する 別の書き方 より実践的な使い方 WSH (JScript・VBScr

    Windows バッチに JScript・VBScript・Oracle SQL スクリプトを混在させてバッチ処理の中で実行する - Corredor
  • BATとWSHのコードを1ファイルに混在させるためのshebang記法(複雑なバッチを1ファイルで実現) - モバイル通信とIT技術をコツコツ勉強するブログ

    WSH/JScriptバッチのコードを,単一のBATファイルの中に埋め込むことが可能。 つまり,複雑なバッチを1ファイルで実現できる。 hoge.bat @if(0)==(0) ECHO OFF echo ■BATによる前処理です。■ cscript.exe //nologo //E:JScript "%~f0" %* echo ■BATによる後処理です。■ @pause GOTO :EOF @end WScript.echo("■WSHによる処理です。■"); これをダブルクリックすると,DOSコマンドの行と,WSHのコードの行が,両方ともいっぺんに実行される。 出力される実行結果: ■BATによる前処理です。■ ■WSHによる処理です。■ ■BATによる後処理です。■ 続行するには何かキーを押してください . . . 動作原理と仕組みは,下記のサイトに詳しく書かれている。 コマンドプロ

    BATとWSHのコードを1ファイルに混在させるためのshebang記法(複雑なバッチを1ファイルで実現) - モバイル通信とIT技術をコツコツ勉強するブログ
  • Windowsバッチでファイルから読み込み、変数に入れる。 - arcanum_jp’s blog

    仕事で調べていて覚えたので、メモ こんな感じのファイルから、読み込んで各行を変数に入れるのを想定。 fruits.txt APPLE ORANGE MELON バッチ内で。。。 ... set FRUIT1 = ファイルから読み込む set FRUIT2 = ファイルから読み込む set FRUIT3 = ファイルから読み込む ... ECHO フルーツ1は、%FRUIT1% ECHO フルーツ1は、%FRUIT2% ECHO フルーツ1は、%FRUIT3% これをヤルには、 hoge.bat ( SET /P FRUIT1= SET /P FRUIT2= SET /P FRUIT3= )< fruits.txt ECHO フルーツ1は、%FRUIT1% ECHO フルーツ1は、%FRUIT2% ECHO フルーツ1は、%FRUIT3% PAUSE 実行結果 >フルーツ1は、APPLE >

    Windowsバッチでファイルから読み込み、変数に入れる。 - arcanum_jp’s blog
  • 【書評】『1分で悟り』 「1分間悟り」で、選択・決断で迷わないようになろう | ライフハッカー・ジャパン

    たとえば「あの言い方が気にさわる」とか、「あのやり方は納得できないとか」、誰かに対して嫌な思いをすることは誰にでもあるもの。多くの場合は、少し時間が経てば「お互いさまだから仕方がない」と納得することになるわけですが、やがてまた、憤慨したくなるような事態が身に降りかかったりもします。 東京下町の住職である『1分で悟り』(名取芳彦著、ワニブックス)の著者も、それは同じだったよう。しかし30代前半のころ、「何度もいやな思いをしているのに、そのまま放置して、懲りもせずに不愉快な思いをくり返して人生を送るのはもったいない」と思ったのだそうです。 そしてそれ以来、「どうして私は、あの言い方(やり方、考え方)が気に入らないのだろう」と自分の感じ方をチェックし、「どうしてあの人は、あんな言い方をしてしまうのだろう」と相手を理解しようと努力するようになったのだとか。 その結果、「なるほど、こういうことか」と

    【書評】『1分で悟り』 「1分間悟り」で、選択・決断で迷わないようになろう | ライフハッカー・ジャパン
  • Studio ODIN - blog風小ネタ集 > FORコマンド中でパイプ&リダイレクトを使用する

    DOSのFORコマンドは、数あるDOSのコマンド中でも 肝となる重要なコマンドです。 そのFORコマンド内で実行するコマンドに パイプやリダイレクトを使用したい場合があります。 例えば・・・ C:\>FOR /F %i IN ('DIR /B /A:-D | FIND /C /V ""') DO ECHO %i | の使い方が誤っています。 上の例では、カレントディレクトリのファイルの数を出力しようとしているのですが 「| の使い方が誤っています。」とエラーが表示されてしまいます。 これは、FORコマンド内のパイプやリダイレクトは "^"(キャレット)を使ってエスケープしてやる必要があるためです。 正しくは、下のようになります。 C:\>FOR /F %i IN ('DIR /B /A:-D ^| FIND /C /V ""') DO ECHO %i 3 リダイレクトも同様です。 FOR

  • バッチファイルの for /f で実行したコマンドのエラーを検出する - norastepの日記

    課題 バッチファイルで、コマンドの実行結果を変数に保存(キャプチャ) したいときに for /f コマンドがしばしば用いられます。 次のような使い方ですね。 for /f "usebackq delims=" %%i in (`dir /b`) do echo Value: %%~i ただ、コマンド(ここでは dir コマンド) が正常に終了する場合は、このような記載で問題ないのですが、多くのコマンドはたまに失敗することがあります。 例えば、下記のようなバッチファイルを実行してみます。 HOGE は存在しないファイルとします。dir コマンドは存在しないファイルを表示する場合に失敗します。 @echo off for /f "usebackq delims=" %%i in (`dir /b HOGE`) do echo Value: %%~i 実行結果です。 ファイルが見つかりません 標

    バッチファイルの for /f で実行したコマンドのエラーを検出する - norastepの日記
  • 第8回 forコマンド(その2)

    forステートメントの最大の拡張機能ともいえるのが“/F”オプションによるファイル解析による繰り返し処理である。これは、括弧内で指定されたファイルの内容を解析して、それを変数に代入したうえで、コマンドを繰り返し実行する機能である。書式としては、

    第8回 forコマンド(その2)
    toa1121011
    toa1121011 2017/02/16
    usebackqの扱いがわかりやすい
  • バッチファイルでパスに()とか含む時

    以前、「scala の使い方が誤っています。」というエントリを書いた。バッチファイルの中で扱うパスに括弧が含まれていることに起因する問題だった。64ビットWindowsだと、C:Program Files (x86)ってフォルダがあるので。 で、その時は単純にダブルクォートで囲えばいいやと思って set FOO="%PATH_X86%foo" とかやったんだけど、これだとFOOにダブルクォートが含まれてしまう。以下のようにやればOK。結構目から鱗だった。 set "FOO=%PATH_X86%foo" 以下のようなバッチファイルを括弧を含むフォルダの下に置いて、色々変更しながら実行してみると分かりやすい。 if "%OS%"=="Windows_NT" ( SET "FOO=%~dp0..%" SET BAR="%~dp0..%" echo "%FOO%" echo %BAR% ) SET

  • 猫科研究所 - コマンドプロンプトのエスケープ仕様

    コマンドプロンプトで、コマンドに空白を含む文字列を渡したい場合、二重引用符「"」で囲む必要があることは多くの方が知っていると思う。 しかし、その他のエスケープシーケンスはどうなっているのだろうか。Windows XP SP3のマシンでヘルプ内を探してみたが、それらしい記述が見つからない。どうしてそんな基的な仕様を明確に書いていないのだろうか…。 等と思っていたところ、殆ど偶然に、MSDNにその記述を発見したのでメモしておく。 引数は、空白 (スペースまたはタブ) で区切ります。 キャレット (^) は、エスケープ文字やデリミタとしては認識されません。カレットは、オペレーティング システムのコマンド ライン パーサーによって完全に処理されてからプログラムの argv 配列に渡されます。 二重引用符で囲まれた文字列 ("string") は、空白を含む場合でも、単一の引数と見なされます。二重

  • バッチファイルでの試行錯誤を回避するためのメモ-または人類には早すぎた言語 - Qiita

    草 「それ海外だとアウトローですぅ」 「ここではない何処かに行きたいだけなら、それでもいいですけど(ドヤァ)」 「プログラミング言語に詳しくなるのは、もう生き甲斐のようなものなんです(ドヤァ)」 「来月からレポートしますぅ」 「レポートはしないですぅ」 「私は先に進みます(キリッ)」 クッソワロタwww この記事の背景 最近、仕事でバッチファイルを書かざるを得ないという不幸な場面に遭遇しているのですが、これがまた、ものすごくどうでもいいことでハマることが多々あり、思わず「このWindows、壊れてる!」と思ったほどでした。犠牲者を増やさないためにも、DOS文法の挙動を記録したメモを載せておきます。 (記事を見てもらえば納得されると思いますが、DOSバッチの言語設計は「驚き最大の原則」を方針とし、その言語仕様は「実装」です。言語法律家というものが成立しえない、非常に平和な世界でもあります。

    バッチファイルでの試行錯誤を回避するためのメモ-または人類には早すぎた言語 - Qiita
  • 1