アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptファイルJS.htmlの実行によって
同ディレクトリ内のバッチファイルDIR.batファイルを実行し
DIR.batがDIR.txtを生成するのを待ってDIR.txtをJavaScriptの内部変数var strに読み込ませる方法を教えてください

なおDIR.batの内容はdir>DIR.txtです

A 回答 (5件)

>cgiがhtmlにデータを渡すときの


>テクニックは利用できないのでしょうか?
サーバーからクライアントのブラウザに文字列を送信するみたいな
機能は無いと思います。
iis + Microsoft .NET Frameworkとか導入すると
nubouさんの希望に沿うことができるかもしれません。

ローカルコンピュータではアプローチを
変えたほうがスマートにできるのではないのでしょうか。

>ハンズしてしまいました
これは
WshShell.Run( p + "dir.bat " + p ,0,0);

WshShell.Run( p + "dir.bat " + p ,0,1);
にしてみてください。
どうでしょう?
    • good
    • 0
この回答へのお礼

ローカルコンピュータではアプローチを 変えたほうがスマートにできるのではないのでしょうか。:

そうですね
戦術を変えてCでやることを考え始めています
ありがとうございました

お礼日時:2002/12/22 04:40

>デスクトップにはdir.txtはできあがっていました


dir.bat を
dir %1 > %1dir.txt
としてくれないとそうなります。
    • good
    • 1

HTMLでは通常、ファイルの実行は


セキュリティ上ワンクリックでは無理です。
InternetExplorerのセキュリティを下げれば可能ですが

dir.bat を
dir %1 > %1dir.txt
としてくれるなら(駄目?)
↓でできました。

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function window_onload() {
var input="";
var p = "c:\\";
p = document.location.pathname;
p = p.substr(1,p.lastIndexOf("\\"));
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run( p + "dir.bat " + p ,0,0);
var fso = new ActiveXObject("Scripting.FileSystemObject");
while( !fso.FileExists(p + "dir.txt")){
for(i=0;i<1000;i++){}
}
var f = fso.OpenTextFile( p + "dir.txt");
while (true){
if (!f.AtEndOfStream){
input += f.Read(1);
}else{
break;
}
}
f.Close();
document.write("<pre>" + input + "</pre>");
}
//-->
</SCRIPT>
</HEAD>
<BODY LANGUAGE=javascript onload="return window_onload()">
<P>Windows+InternetExplorer5以上用です<BR>変数inputにdir.txtが取り込まれます。</P>
</BODY>
</HTML>

この回答への補足

コピーして実行した結果
まずセキュリティ上問題あるというウォーリングが出たけれど決行したところ
スクリプトがコンピュータを遅くしている可能性がありハングするかもしれません
というメッセージが出たけれど続けると
また同じメッセージが出たけれど続けるとハンズしてしまいました

cgiがhtmlにデータを渡すときのテクニックは利用できないのでしょうか?

よろしくお願いします

補足日時:2002/12/21 04:56
    • good
    • 0
この回答へのお礼

デスクトップにはdir.txtはできあがっていました

お礼日時:2002/12/21 06:53

Windows Script Host 5.6の


execメソッドを使用すると
dir コマンドの標準出力を取り込めるので
dir.txtは不要になります。

この回答への補足

dir.html:
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
</script>
</head>
<body bgcolor>
<script language="JavaScript" type="text/javascript">
////////////////////
var str;//<----------------
////////////////////
document.write(str);
</script>
</body>
</html>

dir>dir.txtによってdir.txtに書きこまれる内容をstrに格納してdir.htmlをクリックすればstrの内容がブラウザに表示されるようにするにはどうしたらいいのでしょうか?

dir.htmlがいるディレクトリ
dir.htmlをクリックするディレクトリ
dir>dir.txtを実行するディレクトリ
はすべて同一とします

よろしくお願いします

補足日時:2002/12/20 14:03
    • good
    • 0

<HTML>


<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function button1_onclick() {
var input="";
var p = "c:\\";
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run( p + "dir.bat",0,0);
//while(oE.Status==0){}
var fso = new ActiveXObject("Scripting.FileSystemObject");
while( !fso.FileExists(p + "dir.txt")){
for(i=0;i<1000;i++){}
}
var f = fso.OpenTextFile( p + "dir.txt");
while (true){
if (!f.AtEndOfStream){
input += f.Read(1);
}else{
break;
}
}
//var input = f.ReadAll();
f.Close();
//while (true){
// if (!oE.StdOut.AtEndOfStream){
// input += oE.StdOut.Read(1);
// }else{
// break;
// }
//}
//TEXTAREA1.value = input;
window.alert(input);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>>JavaScriptファイルJS.htmlの実行によって<BR>
Windows Script
Host(Windowsに標準搭載)を使用します。<BR><BR>

htmlファイルですとセキュリティ警告がでるので<BR>
Jscriptファイル(.js)を検討してください。</P>
<P>dir.batの内容は<BR>dir c:\ &gt; c:\dir.txt<BR>としました。<BR>どの環境でも出力先が固定されるように<BR>パスを明確にしました。<BR>ブラウザ上から実行させるとデスクトップの内容が<BR>出力され、dir.txtもデスクトップに保存されてしまうからです。<BR>(私の環境だけかもしれません。)</P>
<P>Windows+InternetExplorer5以上用です<BR>変数inputにdir.txtが取り込まれます。</P>
<P><INPUT language=javascript id=button1 onclick="return button1_onclick()" type=button value=実行 name=button1></P>
<P></P>
<P>
</P>

</BODY>
</HTML>

この回答への補足

「実行する専用のディレクトリ」で実行するのでpはすべてカットしてしました
前記ディレクトリに作成したdir.htmlに回答をコピーして
前記ディレクトリにdir.batをつくり
前記ディレクトリ内のdir.htmlをクリックして
出た実行ボタンをクリックしましたが
前記ディレクトリにdir.txtが作成されません
何が悪いのでしょうか?
よろしくお願いします


なおdir.htmlは以下の内容です
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function button1_onclick() {
var input="";
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("dir.bat",0,0);
//while(oE.Status==0){}
var fso = new ActiveXObject("Scripting.FileSystemObject");
while( !fso.FileExists("dir.txt")){
for(i=0;i<1000;i++){}
}
var f = fso.OpenTextFile("dir.txt");
while (true){
if (!f.AtEndOfStream){
input += f.Read(1);
}else{
break;
}
}
//var input = f.ReadAll();
f.Close();
//while (true){
// if (!oE.StdOut.AtEndOfStream){
// input += oE.StdOut.Read(1);
// }else{
// break;
// }
//}
//TEXTAREA1.value = input;
window.alert(input);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>>JavaScriptファイルJS.htmlの実行によって<BR>
Windows Script
Host(Windowsに標準搭載)を使用します。<BR><BR>

htmlファイルですとセキュリティ警告がでるので<BR>
Jscriptファイル(.js)を検討してください。</P>
<P>dir.batの内容は<BR>dir &gt; dir.txt<BR>としました。<BR>どの環境でも出力先が固定されるように<BR>パスを明確にしました。<BR>ブラウザ上から実行させるとデスクトップの内容が<BR>出力され、dir.txtもデスクトップに保存されてしまうからです。<BR>(私の環境だけかもしれません。)</P>
<P>Windows+InternetExplorer5以上用です<BR>変数inputにdir.txtが取り込まれます。</P>
<P><INPUT language=javascript id=button1 onclick="return button1_onclick()" type=button value=実行 name=button1></P>
<P></P>
<P>
</P>

</BODY>
</HTML>

補足日時:2002/12/20 13:13
    • good
    • 0

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