プロが教えるわが家の防犯対策術!

DOSコマンドバッチで定義した変数"fullpath"に絶対フルパス名が格納されているとします。
この変数からファイル名だけを抽出して別の変数"filenae"に格納したいのですが方法がわかりません。

1. set fullpath = "C:\test\test.c"
2. ----ここの部分をどのように処理すれば?------
3. set filename = fullpathから抽出したファイル名

私がやってみた方法として、for文とdir /bを組み合わせてみたのですが
for %a in ( dir /b c:\test\test.c ) do set filename =%a

本来dir /bを実行するとファイル名のみが表示されるのに、For文をかますと絶対フルパスでfilenameに値が格納されてしまいます。

dir /b c:\test\test.cの結果を直接filename変数に格納できれば解決するのですが、コマンド結果を変数に格納するにはFor文を使わないとだめなんですよね?
なにかよい方法はないでしょうか?

A 回答 (2件)

@echo OFF


setlocal
set fullpath="C:\test\test2.c"
Call :BASENAME %fullpath%
echo %fname%
Goto :EOF
:BASENAME
set fname=%~nx1

詳しくは、call /? または for /?
    • good
    • 1
この回答へのお礼

わざわざソースで教えていただきありがとうございました!!
引数指定を使ってファイル名だけを取り出す方法も考えていたのですが
callを利用する手があるとは考えつかなかったです。
非常に助かりました。

お礼日時:2010/02/18 09:08

for の変数にも ~なんちゃら をつけることができたような.

    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2010/02/18 09:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A