<   2009年 10月 ( 1 )   > この月の画像一覧

Windowsのバッチファイルで特殊なフォルダへのパスを取得

Windowsで
・マイドキュメント
・デスクトップ
・お気に入り
・Application Data

などのパスを正確に調べるためのバッチファイルを掲載してます。

%USERPROFILE%\My Documents

のようにしてもいいんだけど、これだと個人で勝手にマイドキュメントの場所を変更しちゃってるとき困るのよね。



▼予備知識


特殊フォルダの場所は下記レジストリに記載されています。

 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

こっから読み込んで環境変数に取り込む。

▼動作環境


 Windows XP Professional SP3(32bit) にて動作。
 ほかではテストしてない。

▼バッチの記述


下記はデスクトップフォルダのパスを調べたい場合です。
結果は環境変数 RESULT に入ります。

@echo off
set ShellFolders=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
for /f "usebackq tokens=*" %%i in (`reg query "%ShellFolders%" /v Desktop`) do @set RESULT=%%i
set RESULT=%RESULT:Desktop REG_SZ =%


※注意※
最後の行の
> %RESULT:Desktop REG_SZ =%
ですが、REG_SZ の前後にタブスペースが入っています。
ブラウザからコピペすると半角スペースに置換されてしまいますので、必ず修正をお願いします

▼その他の特殊フォルダ


上記はデスクトップのパスを取得しますが、Desktop となっている部分(2カ所)を書き換えることででその他のパスの取得も可能です。

マイドキュメント → Personal
Application Data → AppData
お気に入り → Favorites
IEのクッキー → Cookies



2012/4/11 追記
コメント欄にて、「Windows7 だと半角スペース x4になってて動作しなかったよ」とご指摘がありました。
Windowsのバージョンによってタブだったり半角スペースだったりするようです。
両方に対応するためのサンプルコードを置いておきます。
http://dl.dropbox.com/u/3395850/golorih.exblog.jp/EchoDesktopPath.bat
デスクトップのパスを環境変数 P_Desktop に取得して表示するバッチです。



2011/4/18追記
もうちょい簡単にパスを取得できるようにしてみた。
http://dl.dropbox.com/u/3395850/golorih.exblog.jp/GetShellFolder.bat

使い方

1. このバッチを自作バッチと同じ場所に置く
2. 自作バッチ内で、
call %~dp0GetShellFolder.bat Desktop
を実行。
  第1引数に Desktop / Personal / Favorites など取得したいものを指定してね!
3. 環境変数 RESULT に結果が格納されてる。



ちなみに上記の GetShellFolder.bat は汎用的にレジストリ内の値を取得したいがために作った
http://dl.dropbox.com/u/3395850/golorih.exblog.jp/RegQuery.bat
をちょこっといじったモノになります。こっちは

 第1引数: レジストリキー名
 第2引数: 値名
 第3引数: 値の型名 (REG_SZ , REG_DWORD など)

で指定します。


2013/09/19追記 Shell Folder の一覧表記

Windows XP の Shell Folder 一覧

e0051410_15533635.png


Windows 7 の Shell Folder 一覧

e0051410_15544656.png


Windows 7 にはこんなのもあった。
e0051410_160262.png

[PR]
by golorih | 2009-10-28 15:50 | システム管理 | Trackback | Comments(3)


システム関連の個人的な備忘録。基本的にWindows関連です。

プロフィール

関連


Memoる

一生懸命だと知恵が出る
中途半端だと愚痴が出る
いい加減だと言い訳が出る

「やりたい」なんて言葉は使う必要が無い。「今やってる」「もうやった」「やらないことにした」なら使って良い。
まずは相手を好きになる、その次に相手のいい部分を探す、そして評価できる部分を見つける。それからです、誉めるのは。

カテゴリ

全体
ソフトウェア関連
ソフトウェア開発
Linuxサーバ
その他
Webサービス
MySQL
システム管理
test
バッチファイル
つぶやき
パソコンメーカー
jQuery
レビュー
実験と検証
セキュリティ対策
YahooPipes
vbs
ハードウェア関連
WordPress
JavaScript
HTML&CSS
Welcart
未分類

以前の記事

2016年 12月
2016年 10月
2016年 08月
2016年 07月
2016年 04月
2016年 03月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 05月
2015年 03月
2015年 01月
2014年 11月
2014年 10月
2014年 09月
2014年 08月
2014年 06月
2014年 05月
2014年 04月
2014年 03月
2014年 02月
2014年 01月
2013年 12月
2013年 11月
2013年 10月
2013年 09月
2013年 08月
2013年 07月
2013年 06月
2013年 05月
2013年 04月
2013年 03月
2013年 02月
2013年 01月
2012年 12月
2012年 11月
2012年 10月
2012年 09月
2012年 08月
2012年 07月
2012年 05月
2012年 04月
2012年 03月
2012年 02月
2011年 11月
2011年 10月
2011年 09月
2011年 06月
2011年 05月
2011年 04月
2011年 03月
2011年 02月
2010年 12月
2010年 11月
2010年 10月
2010年 09月
2010年 08月
2010年 07月
2010年 06月
2010年 02月
2009年 12月
2009年 10月
2008年 12月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
2008年 01月
2007年 12月
2007年 11月
2007年 08月
2007年 07月
2005年 09月
2005年 08月

お気に入りブログ

最新のコメント

>朝から >自宅の環境..
by Troro at 23:29
試した結果、記事の方法で..
by Tororo at 23:18
ONUに直接PCを接続す..
by 朝から at 07:18
実は私のキーボードもJと..
by 元群馬県人(現在九州人) at 08:48
>たぶんPC直結時に i..
by 11 at 17:44
僕の所はHGWとONUの..
by waka at 02:15
auひかり乗り換える前に..
by ふぅ~ at 14:49
ご教授ありがとうございま..
by 悩めるオッサン at 13:39
> 悩めるオッサン X..
by skn12 at 23:59
らっとさん、私が使ってい..
by IPアドレス変更したい at 07:40

人気ジャンル

ファン

記事ランキング

ブログジャンル

ネット・IT技術

画像一覧