PowerShellを起動してカレントディレクトNo.08773
旧姓山下 さん 20/08/29 21:51
 
こんにちは.いつもお世話になっております.

「PowerShellを起動してカレントディレクトリに移動するスクリプト」を作り,この
スクリプトを秀丸ファイラーのツールバーから起動できるようにしたいと思います.

ただ,このスクリプトがどうにも分かりません.

var objShell = new ActiveXObject("WScript.Shell");
objShell.Run("C:/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe")

でPowerShellを起動するところまでは行けましたので,ここに

GetDirectory()

を組み合わせればいいのだと思うのですが,組み合わせ方が分かりません.それとも,
全然違う方法になるのでしょうか.

ご存知の方がいらっしゃいましたらご教示頂きたく,よろしくお願い致します.

旧姓山下

[ ]
RE:08773 PowerShellを起動してカレントデNo.08774
さん 20/08/29 22:07
 
 こんばんは、1ユーザーの陸といいます。

 こんな感じでどうでしょうか。
 これを「PowerShell.js」みたいなファイル名で保存して、「ツール」の「ツール
の整理」から追加してください。

----- スクリプトここから -----
var strWScriptType = typeof( WScript );
if( strWScriptType.toLowerCase() == "object" ) {
var strMsg = "このスクリプトは秀丸ファイラーClassic専用です。\n" +
"「ブックマークの整理」または「ツールの整理」で「追加」して、パスの右側の「>
>」ボタンの「スクリプトの参照」より、このファイルを指定して登録してください。
\n"+
"(パスの先頭に「script:」と書かれたパスとして登録)";
WScript.echo(strMsg);
WScript.Quit();
}

var PSPath = "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe";

var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(PSPath) == 0){
echo("PowerShellの実行ファイルが見つかりませんでした。");
EndMacro();
}
var fso = null;

var curdir = GetDirectory();
if (curdir == ""){
if (question("対象となるパスがありません。\nデフォルトのパスで起動しますか?
") == 0){
EndMacro();
}
}

new ActiveXObject("Shell.Application").ShellExecute(PSPath, "", curdir, "",
"1");
--------------------

 スクリプトの流れとしては、「GetDirectory」でカレントディレクトリを取得して、
「ShellApplication」の「run」の第3引数に取得したディレクトリを渡して起動して
います。

 以上、参考になれば幸いです。

 それでは。

[ ]
RE:08774 PowerShellを起動してカレントデNo.08775
旧姓山下 さん 20/08/30 12:00
 
陸様

ご回答ありがとうございました.

思ったよりも複雑で,びっくりしてます.

後日自分で応用できるよう,解読も挑戦してみます.

ありがとうございました.

旧姓山下

[ ]