Indexへ
(4101)//【4093】→(4095)
------------------------
【タイトル】batファイルを見えなくしたい
【記事番号】 4093 (*)
【 日時 】05/11/21 17:03
【 発言者 】ひでと

いつもお世話になっています。
外変のbatファイルの処理について教えてください。
今、testA.bat ファイルを起動して、testB.batファイルに処理を移しています。
ここで、testB.batファイルは普段は、JWからは見えないようにしたいのです。
そのためには、testB.batファイルを削除する必要があると思います。
以前、「他のbatファイルを起動して削除する」と教えていただいたのですが、
具体的にはどうしたらよいのでしょうか。
以下に想定しているBATファイルを入れたのですが、うまくいかないので教えてください。

testA.bat ファイルの中身です。

rem testA
echo off
rem #jww
rem #cd
rem #mc
REM #1-ln 開始線を指示してください
REM #2-ln 終了線を指示してください
REM #3 点を指示してください
rem #hc
rem #h/testB.bat
rem #e
rem testA..exe

testB.bat ファイルの中身です。

rem test
echo off
rem #jww
rem #cd
rem #1ci 円上の点を選んでください
rem #hc
rem #h/testA.bat
rem #e
rem testB.exe
testC.bat

testC.batファイルの中身です。

@echo off
del testB.bat


Indexへ
(4093)←【4095】→(4105)
------------------------
【タイトル】Re(1):batファイルを見えなくしたい
【記事番号】 4095 (4093)
【 日時 】05/11/21 17:28
【 発言者 】幡

試したわけではないのですが、
rem #h/testB.bat
は現在の外部変形を終了した後に移行するということなので、あらかじめtestB.batはtestB.xxxなど違う拡張子にしておき、testA.batの最後で
ren testB.xxx testB.bat
と戻して、最後にtestB.exeのほうでtestB.bat→testB.xxxに戻したらどうでしょう。

testA.batを読み込んだ時点でtestB.batが存在しないとエラーになるようでしたら駄目ですけど。思いつきですみません。


Indexへ
(4095)←【4105】→(4108)
------------------------
【タイトル】Re(2):batファイルを見えなくしたい
【記事番号】 4105 (4095)
【 日時 】05/11/22 08:58
【 発言者 】ひでと

▼幡さん:
>試したわけではないのですが、
>rem #h/testB.bat
>は現在の外部変形を終了した後に移行するということなので、あらかじめtestB.batはtestB.xxxなど違う拡張子にしておき、testA.batの最後で
>ren testB.xxx testB.bat
>と戻して、最後にtestB.exeのほうでtestB.bat→testB.xxxに戻したらどうでしょう。
>
>testA.batを読み込んだ時点でtestB.batが存在しないとエラーになるようでしたら駄目ですけど。思いつきですみません。

ありがとうございます。
以前、質問した時は「別のbatファイル(testC.bat?)を起動して」というアドバイス
をもらったので、そんなにシンプルな方法があれば、ぜひ、と思っていました。
例には載せていませんでしたが、おっしゃる通り Copy コマンドでtestB.txtを
testB.batにコピーして試していました。
やはり、exeファイルの中で処理をすべきなのですね。ありがとうございました。


Indexへ
(4105)←【4108】→(4110)
------------------------
【タイトル】Re(3):batファイルを見えなくしたい
【記事番号】 4108 (4105)
【 日時 】05/11/22 10:06
【 発言者 】幡

ちょっとやってみました。
testA.batの最後に

ren testB.txt testB.bat

としてからtestB.batに引き渡すことは出来ました。
で、testB.batの最後で

ren testB.bat testB.txt

と自分自身をリネームすると、エラー終了するもののリネームは完了するようです。
testB.exeファイル側で処理できれば間違いないと思うんですけど、こういう手もアリかと思います。

testB.batをサブディレクトリに入れておけば、バッチファイル選択画面ではtestA.batしか見えないですね。その手がありましたか…実行パスは一工夫いるかも知れませんけど、そちらもご検討されるといいと思います。

でも REM #jww 行がなかったらファイル選択画面に出てこないわけですから、#jww付きのバッチファイルtestB.batをリネームで作ろうがスクリプトで作ろうが、最後に#jwwでないtestC.batで消せばいいですよね。testC.batがフォルダ内にあってもJWWから見えなければそれでいい、という状況ならば、copyコマンドで既に解決されていたのではと思いますが…。


Indexへ
(4108)←【4110】→(4097)
------------------------
【タイトル】Re(4):batファイルを見えなくしたい
【記事番号】 4110 (4108)
【 日時 】05/11/22 10:59
【 発言者 】ひでと

▼幡さん:
>ちょっとやってみました。
>testA.batの最後に
>
>ren testB.txt testB.bat
>
>としてからtestB.batに引き渡すことは出来ました。
>で、testB.batの最後で
>
>ren testB.bat testB.txt
>
>と自分自身をリネームすると、エラー終了するもののリネームは完了するようです。
>testB.exeファイル側で処理できれば間違いないと思うんですけど、こういう手もアリかと思います。
>
>testB.batをサブディレクトリに入れておけば、バッチファイル選択画面ではtestA.batしか見えないですね。その手がありましたか…実行パスは一工夫いるかも知れませんけど、そちらもご検討されるといいと思います。
>
>でも REM #jww 行がなかったらファイル選択画面に出てこないわけですから、#jww付きのバッチファイルtestB.batをリネームで作ろうがスクリプトで作ろうが、最後に#jwwでないtestC.batで消せばいいですよね。testC.batがフォルダ内にあってもJWWから見えなければそれでいい、という状況ならば、copyコマンドで既に解決されていたのではと思いますが…。
重ね重ね、ありがとうございます。
希望としては testB.batからtestA.batに移動してループのようにしたいと思い、
 testB.batで rem #h/testA.batとしています。
実行してみると、testC.batには処理が移っていないようで、testB.batが消せていないようなのです。
batファイルの知識が無いので、この辺に間違いがあるのかもしれないのですが...?


Indexへ
(4110)←【4097】→(4106)
------------------------
【タイトル】Re(1):batファイルの自動生成と削除
【記事番号】 4097 (4093)
【 日時 】05/11/21 18:26
【 発言者 】コジマ

▼ひでとさん:

スクリプト中で、作成しても可能です。
(AWKやRubyは、こういうの得意です。)

◎testA.bat

@echo off
rem #jww
rem #cd
rem #mc
REM #1-ln 開始線を指示してください
REM #2-ln 終了線を指示してください
REM #3 点を指示してください
rem #hc
rem #h/testB.bat
rem #e
ruby -Ks tesA.rb


◎tesA.rb

open("testB.bat","w"){|f|
    f.puts("rem test")
    f.puts("echo off")
    f.puts("rem #jww")
    f.puts("rem #cd")
    f.puts("rem #1ci 円上の点を選んでください")
    f.puts("rem #hc ")
    f.puts("rem #h/testA.bat")
    f.puts("rem #e")
    f.puts("testC.bat")

}


Indexへ
(4097)←【4106】→(4112)
------------------------
【タイトル】Re(2):batファイルの自動生成と削除
【記事番号】 4106 (4097)
【 日時 】05/11/22 09:10
【 発言者 】ひでと

▼コジマさん:
>▼ひでとさん:
>
>スクリプト中で、作成しても可能です。
>(AWKやRubyは、こういうの得意です。)
>
>◎testA.bat
>
>@echo off
>rem #jww
>rem #cd
>rem #mc
>REM #1-ln 開始線を指示してください
>REM #2-ln 終了線を指示してください
>REM #3 点を指示してください
>rem #hc
>rem #h/testB.bat
>rem #e
>ruby -Ks tesA.rb
>
>
>◎tesA.rb
>
>open("testB.bat","w"){|f|
>    f.puts("rem test")
>    f.puts("echo off")
>    f.puts("rem #jww")
>    f.puts("rem #cd")
>    f.puts("rem #1ci 円上の点を選んでください")
>    f.puts("rem #hc ")
>    f.puts("rem #h/testA.bat")
>    f.puts("rem #e")
>    f.puts("testC.bat")
>
>}
ありがとうございました。VBしか使った事の無い私には、
Rubyの方はこれからの勉強課題です。
VBで同じような処理はできますが、VBの弱点は、他者にはソースがいじれないこと
ですよね。このような場合はファイル名称などを勝手に変更する事が出来ないので
他の人に使ってもらうときには、その辺をあきらめてもらうしかないのが現状です。
逆に、グラフィカルなものが作れて使う人は理解しやすいという利点も感じています。
両方を使いこなせるようになりたいと思っています。ありがとうございました。


Indexへ
(4106)←【4112】→(4100)
------------------------
【タイトル】Re(3):テンポラリファイル
【記事番号】 4112 (4106)
【 日時 】05/11/22 12:07
【 発言者 】コジマ

余計なことかも知れませんが、testB.bat は、削除するのではなく、
テンポラリファイルにした方がいいと思います。
(外部変形における、jwc_temp.txt temp.text のようなもの)

testB.bat ではなく、 temp.bat のように、一目でテンポラリファイル
と分かるファイル名にしておけば、間違えて選択することはないと思います。

testA.bat のようなファイルが複数あった場合、そのファイルも temp.bat を書き換えるようにして、次にtemp.batを呼び出す。(temp.bat を共通にする)

testB.bat を削除するということは、
実行ファイルにエラーがなければいいのですが、
エラーがあった場合、原因の追究が途切れのるでは?


Indexへ
(4112)←【4100】→(4107)
------------------------
【タイトル】Re(1):batファイルを見えなくしたい
【記事番号】 4100 (4093)
【 日時 】05/11/22 00:08
【 発言者 】じゃば __shirato@a2.mbn.or.jp

▼ひでとさん:
  ちぃっす。
 方法はいろいろあると思いますが・・・
 見えない と言う意味が明確ではないので、
 頓珍漢な回答かもしれませんが、
  サブディレクトリをこさえて、
 そこに B を置いといたらどうですか?
 
 


Indexへ
(4100)←【4107】→(4109)
------------------------
【タイトル】Re(2):batファイルを見えなくしたい
【記事番号】 4107 (4100)
【 日時 】05/11/22 09:20
【 発言者 】ひでと

▼じゃばさん:
>▼ひでとさん:
>  ちぃっす。
> 方法はいろいろあると思いますが・・・
> 見えない と言う意味が明確ではないので、
> 頓珍漢な回答かもしれませんが、
>  サブディレクトリをこさえて、
> そこに B を置いといたらどうですか?
> 
> 
ありがとうございます。
「見えない」というのは、
JWの外変では REM #jw または REM #jwwの記載があると、外変のプログラム
と認識してくれて、外変メニューにも表示されるようになります。
私が作ろうとしているのは、外変(testA.bat)の処理から別の外変(testB.bat)を起動する処理で、testB.bat単体では何の効果もないものです。その為、間違ってtestB.batを
選択できないようにしたいのです。
サブディレクトリを作るアイデアは良いと思いますが、今回はもう少し確かな方法に
したいと考えています。ありがとうございました。


Indexへ
(4107)←【4109】→(4111)
------------------------
【タイトル】Re(3):batファイルを見えなくしたい
【記事番号】 4109 (4107)
【 日時 】05/11/22 10:34
【 発言者 】じゃば __shirato@a2.mbn.or.jp

▼ひでとさん:
ちぃっす。

>JWの外変では REM #jw または REM #jwwの記載があると、外変のプログラム
>と認識してくれて、外変メニューにも表示されるようになります。
>私が作ろうとしているのは、外変(testA.bat)の処理から別の外変(testB.bat)を起動する処理で、testB.bat単体では何の効果もないものです。その為、間違ってtestB.batを
>選択できないようにしたいのです。
>サブディレクトリを作るアイデアは良いと思いますが、今回はもう少し確かな方法に
>したいと考えています。ありがとうございました。

 えっ?そう思ったんで書いたんだけど・・・

サブディレクトリ(あるいは待ったく別のディレクトリ)においておけば、
メニューから見えないですよね?(見えない事が目的ですよね?)
で、Aのバッチからそれを呼ぶ事はできるんだから、それが一番確実だと思いますよ。
 AWKでバッチやAWKをこさえたりとかは、やるほうなんですが・・・
バッチが固定的であるなら・・そんな事をする必要性があるとは思えません。
別ディレクトリに置くのが、いちばん確実だと思いますよ。
 そういう、他の外変からしか呼ばないもののディレクトリをこさえといても
いいと思うけどなぁ・・・
・・・判ってると思うけど、動的にそのときにディレクトリを作るって事じゃないよ。
 故意に難しくするのは、ミスの元になりますよ。


Indexへ
(4109)←【4111】→(4115)
------------------------
【タイトル】Re(4):batファイルを見えなくしたい
【記事番号】 4111 (4109)
【 日時 】05/11/22 11:12
【 発言者 】ひでと

▼じゃばさん:
>▼ひでとさん:
>ちぃっす。
>
>>JWの外変では REM #jw または REM #jwwの記載があると、外変のプログラム
>>と認識してくれて、外変メニューにも表示されるようになります。
>>私が作ろうとしているのは、外変(testA.bat)の処理から別の外変(testB.bat)を起動する処理で、testB.bat単体では何の効果もないものです。その為、間違ってtestB.batを
>>選択できないようにしたいのです。
>>サブディレクトリを作るアイデアは良いと思いますが、今回はもう少し確かな方法に
>>したいと考えています。ありがとうございました。
>
> えっ?そう思ったんで書いたんだけど・・・
>
>サブディレクトリ(あるいは待ったく別のディレクトリ)においておけば、
>メニューから見えないですよね?(見えない事が目的ですよね?)
>で、Aのバッチからそれを呼ぶ事はできるんだから、それが一番確実だと思いますよ。
> AWKでバッチやAWKをこさえたりとかは、やるほうなんですが・・・
>バッチが固定的であるなら・・そんな事をする必要性があるとは思えません。
>別ディレクトリに置くのが、いちばん確実だと思いますよ。
> そういう、他の外変からしか呼ばないもののディレクトリをこさえといても
>いいと思うけどなぁ・・・
>・・・判ってると思うけど、動的にそのときにディレクトリを作るって事じゃないよ。
> 故意に難しくするのは、ミスの元になりますよ。

重ね重ね、ありがとうございます。
気になっているのは、外変の表示からディレクトリをたどれる事なのです。
サブディレクトリに入れていても、サブディレクトリを選択すれば見えてしまいますよね。
1つのディレクトリの中に全ての外変を入れておく場合は、サブディレクトリを意識する必要は無いとおもいますが、
いくつかのデイレクトリを使っている場合は、誤ってここでのtestB.batのディレクトリを選択してしまう場合があります。可能ならばそれを避けたいと、思ったのです。


Indexへ
(4111)←【4115】→(4124)
------------------------
【タイトル】Re(5):batファイルを見えなくしたい
【記事番号】 4115 (4111)
【 日時 】05/11/22 13:01
【 発言者 】じゃば __shirato@a2.mbn.or.jp

▼ひでとさん:
ちぃっす。
>いくつかのデイレクトリを使っている場合は、誤ってここでのtestB.batのディレクトリを選択してしまう場合があります。可能ならばそれを避けたいと、思ったのです。

  だったら、別のディレクトリにすればいいだけの事だと思いますよ。
 たとえば・・C:\gaihenn とか・・・
 別に、いいけど・・・


Indexへ
(4115)←【4124】→(4113)
------------------------
【タイトル】ディレクトリ分けに賛成
【記事番号】 4124 (4115)
【 日時 】05/11/23 00:33
【 発言者 】幡

して欲しくないことは出来ないようにするのが基本中の基本ではありますが、運用でカバーする柔軟さも必要ですね。
testA.batのいるフォルダの下でも横でもいいので、testB.batは別のフォルダに入れます。ただしバッチファイル名は変更。

決して覗いてはなりませぬ\さわるな.bat
--------
@REM 実行した場合は反則金10,000円申し受けます
  :
  :
--------
文言は工夫の余地がありますけど、操作者の注意を喚起する方向でいかがでしょうか。


Indexへ
(4124)←【4113】→(4114)
------------------------
【タイトル】Re(1):batファイルを見えなくしたい
【記事番号】 4113 (4093)
【 日時 】05/11/22 12:39
【 発言者 】不精者

なんか お話が難しくなってきましたが スキルアップにはいいかも
jwwで表示させたくないのなら BAT ファイルのプロパティー で
非表示にチェックではだめかな

同じフォルダー内にあってもjwwでの外部変形では見えないはずですが


Indexへ
(4113)←【4114】→(4139)
------------------------
【タイトル】Re(2):batファイルを見えなくしたい
【記事番号】 4114 (4113)
【 日時 】05/11/22 12:54
【 発言者 】不精者

説明が適当でした

  表示させたくないBATファイルのプロパティを開き
  全般 属性 隠しファイル(H)にチェック です

         すみません。


Indexへ
(4114)←【4139】//(4094)
------------------------
【タイトル】Re(1):batファイルを見えなくしたい
【記事番号】 4139 (4093)
【 日時 】05/11/24 09:15
【 発言者 】ひでと

皆様、いろいろと教えていただきありがとうございました。
別のまディレクトリに入れる案ですが、
ディレクトリを複雑にしてしまうような気がして、あくまで個人的な感覚の問題ですが、
今回は採用しないことにさせていただきました。

一応、私なりの解決策ですが。
1.testB.batはtestB.txtをコピーして使用する。この処理をbatファイルではなく
 testA.exeファイルで行う。
 こうする事によって、意図的にbatファイルを作成するタイミングを計画でき、
 例えば、キャンセルの処理ではbatファイルを作らない事ができました。
2.testB.batをtestB.exeで削除する。
testB.batによって起動されるtestB.exeでtestB.batを削除するのに不安でしたが、
 問題なく実行できました。また、"rem #h/testA.bat"も普通に実行できました。
 JWでの処理が、「batファイルを読み込みながら逐次JWに反映していく」ような仕様に
 なっているのではないかと、想像しています。
重ね重ね、ありがとうございました。

>いつもお世話になっています。
>外変のbatファイルの処理について教えてください。
>今、testA.bat ファイルを起動して、testB.batファイルに処理を移しています。
>ここで、testB.batファイルは普段は、JWからは見えないようにしたいのです。
>そのためには、testB.batファイルを削除する必要があると思います。
>以前、「他のbatファイルを起動して削除する」と教えていただいたのですが、
>具体的にはどうしたらよいのでしょうか。
>以下に想定しているBATファイルを入れたのですが、うまくいかないので教えてください。
>
>testA.bat ファイルの中身です。
>
>rem testA
>echo off
>rem #jww
>rem #cd
>rem #mc
>REM #1-ln 開始線を指示してください
>REM #2-ln 終了線を指示してください
>REM #3 点を指示してください
>rem #hc
>rem #h/testB.bat
>rem #e
>rem testA..exe
>
>testB.bat ファイルの中身です。
>
>rem test
>echo off
>rem #jww
>rem #cd
>rem #1ci 円上の点を選んでください
>rem #hc
>rem #h/testA.bat
>rem #e
>rem testB.exe
>testC.bat
>
>testC.batファイルの中身です。
>
>@echo off
>del testB.bat