BLOGTIMES
2021/12/19

全角スペースが入りのファイルを bat にドラッグアンドドロップする

  bat  windows 
このエントリーをはてなブックマークに追加

昔、作ったドラッグアンドドロップでファイル名に日付を追加する .bat ファイルですが、全角スペースが含まれたファイルが上手く扱えないので、使えるように改良してみました。

bat ファイルでの全角スペースの扱いは、半角スペースの扱いと違うのでみんな苦労しているようです。
今回は一度違う文字(___)に置換してから、ループ内で逆に置換するようにしました。
作成時の注意点は文字コードを Shift-JIS にして保存する必要があるということだけです。

@echo off cd /d %~dp0 set args=%* set args_escaped=%args: =___% echo args: %* echo args_escaped: %args_escaped% setlocal enabledelayedexpansion for %%f in (%args_escaped:"=%) do ( set fname=%%~dpnf set fname_org=!fname:___= ! echo fname_org!fname_org! echo -------- ) endlocal pause

こんな感じで、全角スペース入りの複数のファイルをドラッグアンドドロップしても大丈夫になりました。

args: D:\hoge\い う.txt D:\hoge\あ あ.txt args_escaped: D:\hoge\い___う.txt D:\hoge\あ___あ.txt fname_orgD:\hoge\い う.txt -------- fname_orgD:\hoge\あ あ.txt -------- 続行するには何かキーを押してください . . .

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12935
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン