バッチで秀丸起動No.34526
おすぎ さん 15/10/20 12:30
 
いつもお世話になっております。

第三者のパソコン(秀丸インストール済み)で、
バッチファイルから秀丸を起動させたいと思っています。

でも、そのパソコンのどこに Hidemaru.exe があるのか分かりません。
なのでフルパスを書くことができません。

フルパスを取得する方法ってあるのでしょうか?

[ ]
RE:34526 バッチで秀丸起動No.34527
ランドルフィ2 さん 15/10/20 13:06
 
エクスプローラーを開く

PCをクリックする 左端のところに PC ローカルディスク などと出ている

右上の端にPCの検索がある

Hidemaru.exe と入力してクリック

とすればどこにあるかわかる

ランドルフィ

[ ]
RE:34527 バッチで秀丸起動No.34528
おすぎ さん 15/10/20 13:19
 
ランドルフィ2さん

ありがとうございます。

私の聞き方がまずかったようですみません。

知りたいのは、バッチファイル他ソフト的に、Hidemaru.exe のフルアドレスを自動
的に取得して起動させる方法です。

よろしくお願いいたします。

[ ]
RE:34528 バッチで秀丸起動No.34529
Kaisan さん 15/10/20 13:37
 
kaisan@ユーザです。

レジストリを見ればわかると思います。

キー:
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Hid
emaru
値:
  InstallLocation

インストールディレクトリが書いてあるので"\hidemaru.exe"をくっつければよいと
思います。

x64は試したことないけど;;


On Tue, 20 Oct 2015 13:19:28 +0900
おすぎ <xxxxxxxxxxxxxxxxxxx@maruo.co.jp> からの引用:
> ランドルフィ2さん
>
> ありがとうございます。
>
> 私の聞き方がまずかったようですみません。
>
> 知りたいのは、バッチファイル他ソフト的に、Hidemaru.exe のフルアドレスを自動
> 的に取得して起動させる方法です。
>
> よろしくお願いいたします。


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:34529 バッチで秀丸起動No.34531
秀丸担当 さん 15/10/20 14:59
 

Kaisanさんの言われるように、インストール先をレジストリから取得することが
できます。
InstallLocationはV6.00以降から対応しています。

これをバッチファイルで取得できないか調べてみたところでは、XP以降ではreg
コマンドで取得できるようです。

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Hidemaru" /v InstallLocation


regコマンドの結果を、さらに変数に入れることができないか調べてみたところ
では、forを使ってやる方法があるようでした。
例えば以下のようにしてみたところ、取得して実行できました。
(forの行は一行につなげてください)

@echo off

set hidemarudir=

for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\
Windows\CurrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set
hidemarudir=%%C

if "%hidemarudir%"=="" exit /B

start "" "%hidemarudir%\hidemaru.exe"

[ ]
RE:34531 バッチで秀丸起動No.34532
おすぎ さん 15/10/20 15:43
 
Kaisanさん、秀丸担当さん
ありがとうございます。

やはりレジストリに手を出さないとダメですか。。。

2つほど教えてください。
(1)教えていただいた方法で秀丸を起動させる際、
起動オプションは使えるんでしょうか?

(2)マクロフォルダのフルパスをレジストリから取得するには、
どうしたら良いのでしょうか?

おんぶに抱っこですみません。

[ ]
RE:34532 バッチで秀丸起動No.34533
でるもんたいいじま さん 15/10/20 16:04
 
でるもんた・いいじまです。

> Kaisanさん、秀丸担当さん
> ありがとうございます。
>
> やはりレジストリに手を出さないとダメですか。。。

「ファイル名を指定して実行」でパス名を省略できるのであれば
(私の環境ではできましたが、色々いじってあるのでデフォルトでも
 できるのかどうかはわかりません)、バッチファイルの中で
   start "" hoidemaru.exe .....
と書いてやればOKです。NT系だとcmd.exeの組み込みコマンド、
Win9x系だとstart.exeを呼び出すんだったと思います。

ただ、複雑なことをしようとすると、IEがインストール済であることを
前提に、バッチファイルではなくWSHで書いたほうがいいと思います。

[ ]
RE:34533 バッチで秀丸起動No.34534
秀丸担当 さん 15/10/20 17:31
 

起動オプションは、やってみたらできるようです。例えば/rを付けるとしたら
startコマンドの部分は以下のようにしてみたらできました。

start "" "%hidemarudir%\hidemaru.exe" /r

マクロファイル用のフォルダは、レジストリの以下の場所
HKEY_CURRENT_USER\Software\Hidemaruo\Hidemaru\Env
の、
MacroPath
という値になります。
空欄は推奨されませんが、空欄の場合はインストール先と同じになります。

[ ]
RE:34534 バッチで秀丸起動No.34535
おすぎ さん 15/10/20 17:47
 
でるもんた・いいじまさん
秀丸担当さん

ご回答ありがとうございます。
とても助かります。

ところで、
以下のバッチファイル「.bat」を作成してクリックしてみたのですが、
何も起きません。こちらの転記ミスでしょうか?
ちなみに、windows7、64bitで、秀丸は32bit、v8.56, beta10です。

@echo off
set hidemarudir=
for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\Cu
rrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set hidemarudir=%%C
if "%hidemarudir%"=="" exit /B
start "" \hidemaru.exe"



です。>
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>空欄は推奨されませんが、空欄の場合はインストール先と同じになります。

[ ]
RE:34535 バッチで秀丸起動No.34536
mtriver さん 15/10/20 18:30
 
mtriver です。

: start "" \hidemaru.exe"

のところが足りませんね。

start "" "%hidemarudir%\hidemaru.exe"

[ ]
RE:34535 バッチで秀丸起動No.34538
Kaisan さん 15/10/20 18:53
 
とりあえず、転記ミスがあるのですが、それでもエラーウインドウが出るはずです。

確認のため、
 「@echo off」を「rem @echo off」変えて
コマンドプロンプト上で実行してみて下さい。

実行したコマンドや、ウインドウが表示されないエラーを見ることが出来ます。


[ ]
RE:34536 バッチで秀丸起動No.34539
でるもんたいいじま さん 15/10/20 18:53
 
いいじまです。

> mtriver です。
> : start "" \hidemaru.exe"
> のところが足りませんね。
> start "" "%hidemarudir%\hidemaru.exe"

あれ?環境変数の(≠秀丸のキーワードの)HIDEMARUDIRってデフォルトの
インストールでは設定されないはずですが…。

私の意図したのは
 ・バッチファイル上に書くコマンド名は「start」
 ・第一引数は空文字列「""」
 ・第二引数に、パスを一切指定しない「hidemaru.exe」
です。

ただ、もしかしたら、これで動くのは私が別件でレジストリをいじって
いるのが原因かもしれないので、動くかどうか試してみてください、としか
申し上げられません。

[ ]
RE:34539 バッチで秀丸起動No.34541
mtriver さん 15/10/21 04:52
 
mtriver です。

: > start "" "%hidemarudir%\hidemaru.exe"
:
: あれ?環境変数の(≠秀丸のキーワードの)HIDEMARUDIRってデフォルトの
: インストールでは設定されないはずですが…。

for 文の中で set hidemarudir=%%C と設定していますよ。

[ ]
RE:34541 バッチで秀丸起動No.34542
おすぎ さん 15/10/21 09:29
 
mtriverさん、Kaisanさんの言われるとおり、
以下の内容をコマンドプロンプトにコピーしましたが、この対応で合ってます?

そしたら、
「for 〜」文の後に、「%%Aの使い方が誤っています」が出ました。


rem @echo off

set hidemarudir=

for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\
Windows\CurrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set
hidemarudir=%%C

if "%hidemarudir%"=="" exit /B

start "" "%\hidemarudir%\hidemaru.exe"

[ ]
RE:34542 バッチで秀丸起動No.34543
mtriver さん 15/10/21 09:46
 
mtriver です。

: mtriverさん、Kaisanさんの言われるとおり、
: 以下の内容をコマンドプロンプトにコピーしましたが、この対応で合ってます?
:
: そしたら、
: 「for 〜」文の後に、「%%Aの使い方が誤っています」が出ました。
: for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\
: Windows\CurrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set
: hidemarudir=%%C

多分ですね、for 文が 1行に記述されていないと思います。
このメールでは 3行になっていますが、改行が入っていいけません。

[ ]
RE:34543 バッチで秀丸起動No.34544
おすぎ さん 15/10/21 10:01
 
mtriver さん
ありがとうございます。

実際には次の内容でして、for 文は1行です。

rem @echo off
set hidemarudir=
for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\Cu
rrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set hidemarudir=%%C
if "%hidemarudir%"=="" exit /B
start "" "%\hidemarudir%\hidemaru.exe"


ところで、上記のバッチファイル「.dot」をクリックすると、
「エラー:指定されたレジストリーキーまたは値が見つかりませんでした」
が出るようです。

[ ]
RE:34544 バッチで秀丸起動No.34545
mtriver さん 15/10/21 10:17
 
mtriver です。

: rem @echo off
: set hidemarudir=
: for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\Cu
: rrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set hidemarudir=%%C
: if "%hidemarudir%"=="" exit /B
: start "" "%\hidemarudir%\hidemaru.exe"
:
:
: ところで、上記のバッチファイル「.dot」をクリックすると、

バッチファイル名は ooooo.bat になっていますよね???

このバッチファイル名が ooooo.bat だとして、
コマンドプロンプトより以下の echo 文を入れて実行してみて下さい。
正しく、%hidemarudir% が C:\Program Files\HIDEMARU の如く得られていますか?

echo %hidemarudir%
rem start "" "%\hidemarudir%\hidemaru.exe"

[ ]
RE:34545 バッチで秀丸起動No.34546
おすぎ さん 15/10/21 10:39
 
mtriver さん

・バッチファイル名は「.bat」です。
・以下の文を入れてみましたが、
echo文の後に「%hidemarudir%」が再表示されました。
>echo %hidemarudir%
>rem start "" "%\hidemarudir%\hidemaru.exe"


申し訳ありませんが、
コマンドプロンプトのことは良く分かっていないので、
これ以上は対応できません。
すみません。

[ ]
RE:34546 バッチで秀丸起動No.34547
mtriver さん 15/10/21 11:00
 
mtriver です。

: mtriver さん
:
: ・バッチファイル名は「.bat」です。
: ・以下の文を入れてみましたが、
: echo文の後に「%hidemarudir%」が再表示されました。
: >echo %hidemarudir%
: >rem start "" "%\hidemarudir%\hidemaru.exe"

「%hidemarudir%」と表示されたのですか?
それとも
「C:\Program Files\HIDEMARU」← この様な形で表示されないと駄目です
の様に表示されたのですか?

そのように表示されないならば for 文が機能してない。
そもそもレジストリの値(場所)が違っている。

因みに、同じバッチを作って実行したらきっちり動きましたよ。

コマンドプロンプトが苦手ならば、

バッチの最後のところに

echo %hidemarudir%
rem start "" "%\hidemarudir%\hidemaru.exe"
echo.
echo    ※ 終了ます: 何かのキーを入力してください!
echo.
pause > nul

を入れれば、for 文で得られた結果 %hidemarudir% しっかり見れます。

[ ]
RE:34547 バッチで秀丸起動No.34548
秀丸担当 さん 15/10/21 12:10
 

でるもんたいいじまさんのフルパスでなくhidemaru.exeを書くとできる点につい
ては、独自にPATHを設定される必要があると思います。
通常はフルパスで書く必要があります。


コマンドプロンプトにforの行を直接入力(貼り付け)したら、「%%Aの使い方が
誤っています」というようなエラーになるようです。
参考:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1247937812
必ずバッチファイル(拡張子.batのテキストファイル)を作って、バッチファイ
ルを実行する必要があります。


もし取得に失敗して環境変数hidemarudirが空の場合、
echo %hidemarudir%
を直接入力する場合と、
echo %hidemarudir%
という内容のバッチファイルは、なぜか結果が違うようです。(やっていること
は同じはずですが)
とにかく直接入力は混乱する原因になるようです。


秀丸エディタがインストールされていないか、持ち出しキットでの利用だとした
ら、「エラー:指定されたレジストリーキーまたは値が見つかりませんでした」
となると思います。
または、バッチファイルの
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Hidemaru

InstallLocation
のところが一文字でも違っているとしたら、違う場所を指していることになり、
同じエラーになると思います。


最後の
start "" "%\hidemarudir%\hidemaru.exe"
は、
start "" "%hidemarudir%\hidemaru.exe"
とするのが正しいです。

[ ]
RE:34548 バッチで秀丸起動No.34550
おすぎ さん 15/10/21 13:05
 
秀丸担当さま

次の内容でバッチファイル「.bat」を作成してクリックしたところ、
rem @echo off

set hidemarudir=

for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\Cu
rrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set hidemarudir=%%C

rem if "%hidemarudir%"=="" exit /B

start "" "%hidemarudir%\hidemaru.exe"


(1)画面上に「エラー:指定されたレジストリキーまたは値が見つかりませんでした」
のメッセージが出ました。

(2)またポップアップも出て、
「'\hidemaru.exe'が見つかりません。名前を正しく入力したかどうかを確認してか
ら、やり直してください」
も出ました。


入力ミスはないと思います(コピペなので)。
すみません。
対応策がありましたら教えてください。
よろしくお願いいたします。

[ ]
RE:34550 バッチで秀丸起動No.34551
秀丸担当 さん 15/10/21 13:45
 
ということはインストールされていないと判断されているということで、考えてみた
ところ64bitと32bitの違いがありました。
64bit版Windowsのコマンドプロンプトは64bitで、バッチファイルを実行すると、レ
ジストリは64bit版だけを見ていました。
32bit版の秀丸エディタだけを入れていている場合そうなってしまいました。

64bit版のコマンドプロンプトから見た、32bit版アプリのインストール先は
以下の場所でした。

HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Hidemaru

取得に失敗した場合、32bitで再試行するように変更すると、以下のバッチファイル
でできるのではないかと思います。


@echo off

set hidemarudir=

for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\Cu
rrentVersion\Uninstall\Hidemaru" /v InstallLocation') do set hidemarudir=%%C

if "%hidemarudir%"=="" for /f "tokens=1,2,*" %%A in ('reg query "HKLM\SOFTWA
RE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Hidemaru" /v Insta
llLocation') do set hidemarudir=%%C

if "%hidemarudir%"=="" exit /B

start "" "%hidemarudir%\hidemaru.exe"



[ ]
RE:34551 バッチで秀丸起動No.34552
おすぎ さん 15/10/21 15:03
 
秀丸担当さま
うまく動作しました。ありがとうございました!!

(1)このバッチファイルは、
32bit版、64bit版両方のWindowsに使えるということで良いでしょうか?

(2)前にも書きましたが、マクロフォルダのフルパスも知りたいと思っています。

他人のPCにマクロとバッチファイルを送り、バッチを動作させると、
そのマクロがマクロフォルダに自動的にコピーされるようにしたいと思っています
(コピー等はvbscriptでやる予定です)。

バッチファイルでマクロフォルダパスを取得するには、次のような内容にして、
hidemarumacrodir の値をクリップボードに上げるようにすれば良いでしょうか?


@echo off

set hidemarumacrodir=

for /f "tokens=1,2,*" %%A in ('reg query "HKEY_CURRENT_USER\Software\Hidemar
uo\Hidemaru\Env" /v MacroPath') do set hidemarumacrodir=%%C

[ ]
RE:34552 バッチで秀丸起動No.34553
秀丸担当 さん 15/10/21 16:14
 

バッチファイルは32bit版、64bit版両方のWindowsで使えます。
32bit版のWindowsで取得に失敗した場合はWow6432Nodeを見に行く再試行が無意
味になりますが、バッチファイルで条件分岐を書くのは複雑になりそうなので、
無駄ですが簡単な再試行でも問題ないかと思います。

バッチファイルでクリップボードにコピーするには、検索してみたところでは、
clipというコマンドがあるようです。

hidemarumacrodirが空の場合はインストール先にする必要がありますが、一般的
にインストール先はProgram Files配下で、Program Files配下を書き換えるのは
セキュリティ上良くないというか、管理者でないとできないです。
メールで送られてきたものがProgram Files配下を書き換えるというのは考慮し
なくていいと思うので、空の場合はエラー扱いにしてしまうのが妥当かと思いま
す。

[ ]
RE:34553 バッチで秀丸起動No.34554
おすぎ さん 15/10/21 16:31
 
秀丸担当さま

承知しました。
ありがとうございました。

[ ]