やりたいこと検索

パス名の文字列を自在に切り取る

 

目次

 

パス名の文字列の切り取り

ファイルのパス名から必要な部分の文字列を切り取りたいとき、バッチファイルでは便利なコマンドが用意されています。

例えば、

C:\Users\ide\Desktop\バッチ\file.txt

のようなパス名から、ファイル名だけを取り出したり、ドライブ名を除いたものを取り出したり、さらには更新日時やサイズに関しても取り出すことができます。

 

以下に、パス名から色々な部分を取り出しているバッチファイル(kiritori_path.bat)の例を示します。

4行目で変数「filename」にパス名を設定し、7行目で切り取りを行うサブルーチンにパス名を引き渡しています。このように、パス名の切り取りを行うときは、引数に格納してあげる必要があります

サブルーチン内では、

  1. そのまま出力する(15行目)
  2. ダブルクォーテーション「”」を除いて表示(19行目)
  3. ドライブ名を表示せず、パス名だけを表示(23行目)
  4. ファイルの更新日時を表示(27行目)

の4つの表示を実行例として行っています。

ちなみに、ここではダブルクォーテーション「”」で囲んだパス名を例として設定していますが、これは空白を含んだファイル名やフォルダ名を扱うときに使用するからです。詳しくは、「スペースを含んだファイル・フォルダ名を指定する -やりたいことから検索-」をご覧下さい。

以下、上記のバッチファイルの実行結果です。

パス名の文字列を自在に切り取る パス名から様々な部分を切り取る

 

上記のバッチファイルに記述した例以外にも、以下の表にまとめたコマンドが使えます。

コマンド 主な動作
%~1 ダブルクォーテーション「”」 を除いて表示
%~d1 ドライブ名のみ表示
%~p1 パス名のみ表示
%~n1 ファイル名のみ表示
%~x1 拡張子のみ表示
%~a1 ファイルの属性を表示
%~t1 ファイルの更新日時を表示
%~z1 ファイルのサイズを表示

 

複数を組み合わせて表示する

上記で示したコマンドは複数組み合わせて使用することもできます。

例えば、拡張子付きのファイル名を切り取りたいときは、ファイル名を取り出す「%~n1」と拡張子を取り出す「%~x1」を組み合わせて、「%~nx1」とします。さらに、ファイルサイズをこれに追加したいときは「%~nxz1」とすればよいでしょう。

以下、複数を組み合わせたときのバッチファイル例です。

以下、実行結果です。

パス名の文字列を自在に切り取る 複数のコマンドを指定する

 

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメント

  1. あーやん より:

    パッチ処理で、
    パッチファイルをクリックしたら、指定されたディレクトリ(①)の配下にあるファイル全てを、パッチファイルで指定したファイルに書きたいです。
    また、①の指定されたディレクトリを、バッチファイルを開かなくても変えられるようにしたいです(上からファイルを入れる?)。
    やり方が全くわからず困っています。
    よろしくお願い致します。

コメントを残す