bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。
シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。
バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。
Q&A
2回答
1278閲覧
総合スコア6
0グッド
0クリップ
投稿2020/09/17 01:18
0
バッチファイルに書かれている
SET TMP = %PATH%~n1_%DATETIME%.log
~n1_の意味は何でしょう?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2020/09/17 02:22 編集
回答2件
このバッチファイルは正しいのでしょうか。。。? 環境変数は%~%で表されますから、単純に解釈すると、%PATH%と%DATETIME%に挟まれた単なる文字列~n1_になります。 TMPをechoしてみれば動作結果はわかるかと思います。 例えばPATHがC:\A;C:\B;C:\C;でDATETIMEが20200917170000であれば、
%~%
%PATH%
%DATETIME%
~n1_
C:\A;C:\B;C:\C;
20200917170000
C:\A;C:\B;C:\C;~n1_20200917170000.log
と出力されるはずです。
ご存じだとは思いますが環境変数PATHには複数のパスがセミコロン区切りで設定されています。 そこからログファイルの名前を生成しようとしているので、これは正しくない結果になると思います。 おそらくPATHに登録されているパスの一部を取り出そうとしているのではないでしょうか?
投稿2020/09/17 08:06
総合スコア17000
"%~n1_"は引数のファイル名を取得します。
test.bat1@test.bat 2echo %~n1
test.bat
1@test.bat 2echo %~n1
例えば上記のようなバッチファイルがあったとして、以下の通り呼び出すと test.bat "parameter.txt"
parameter
が返されます。
ちなみに以下のコマンドを実行するとパラメータの取得に関するヘルプが参照できます。
call /?
投稿2020/09/17 02:18
総合スコア68
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.35%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
shell バッチファイルに書かれている記号の意味は何でしょう?