プロが教える店舗&オフィスのセキュリティ対策術

以前、以下のような質問をした者です。
<<http://oshiete1.goo.ne.jp/qa2688460.html>>

上記質問を踏まえて自分が作成したファイルは、
・ファイル名「OVERRIDE_SET.reg」
・ファイル内容

1行目: Windows Registry Editor Version 5.00
2行目: [HKEY_CURRENT_USER\Environment]
3行目: "OVER_RIDE"="%USERPROFILE%"

という内容でユーザー環境変数に
 変数名:OVER_RIDE(仮名称)
 変数値:%USERPROFILE%
     (値には↑の文字列が入るが表示は「C:\Documents and Settings\(ユーザー名)」)
を設定できました。

しかし、
変数値が「%USERPROFILE%」では、あるソフトを動かす際にエラーになってしまいました。
手操作で変数値「%USERPROFILE%」を「C:\Documents and Settings\(ユーザー名)」と「%USERPROFILE%」が示す文字列を実際に打ち込んだところ
エラーは解消できました。

バッチファイルにて「%USERPROFILE%」の部分を、
「C:\Documents and Settings\(ユーザー名)」にするには
どうすればよいでしょうか?

実行環境はOS、WindowsXPかWindows2000を予定しています。

A 回答 (3件)

このような感じですかね。


まぁ、あとは多少違っても解決できることと思います。
---------------------------
@echo off

setlocal
set f="c:\temp\a.reg"
for /f "tokens=3 delims=\" %%i in ("%USERPROFILE%") do set a="C:\\Documents and Settings\\%%i"
echo Windows Registry Editor Version 5.00>%f%
echo.>>%f%
echo [HKEY_CURRENT_USER\Environment]>>%f%
echo "OVER_RIDE"=%a%>>%f%
echo.>>%f%
regedit -s %f%
del %f%
endlocal
    • good
    • 0

書き忘れました。


#1の内容を「ファイル名.bat」で保存し、各PCで実行。
    • good
    • 0

c:\temp\a.reg は適当に変えてください。



---------------
echo off
echo Windows Registry Editor Version 5.00>c:\temp\a.reg
echo.>>c:\temp\a.reg
echo [HKEY_CURRENT_USER\Environment]>>c:\temp\a.reg
echo "OVER_RIDE"="C:\\Documents and Settings\\%USERNAME%">>c:\temp\a.reg
echo.>>c:\temp\a.reg
regedit -s c:\temp\a.reg
del c:\temp\a.reg

この回答への補足

ご回答ありがとうございます。

>echo "OVER_RIDE"="C:\\Documents and Settings\\%USERNAME%">>c:\temp\a.reg

という一行について補足させて下さい。

「%USERPROFILE%」で取得する、「C:\Documents and Settings\(ユーザー名)」のユーザー名と
「%USERNAME%」で取得するユーザー名は必ずしも同じとは限りません。

Ex.
「AAA」というユーザー名でログインした後、「AAA」と重複するユーザーアカウントを作成した場合、「AAA.Group」といったように本来のユーザー名の後にドメイングループが記述されるような場合があります。
この状態から「AAA」を削除した場合「AAA.Group」が残り、
ログイン時は「AAA」(%USERNAME%の値)で入ったとしても参照するCのDocument and Settingsの直下のフォルダは「AAA.Group」(%USERPROFILE%の値)と両者の値が異なる場合があります。

よってご提示頂いた%USERNAME%を用いるのでは、
今回実施したい内容を満足できない場合があります。

説明不足で申し訳ありません。

補足日時:2007/01/29 17:25
    • good
    • 0

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