5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

バッチファイルプログラミング質問スレ

1 :デフォルトの名無しさん:02/12/23 12:38
Windows版シェルプログラミングみたいなものですな。

2 :デフォルトの名無しさん:02/12/23 12:41
最近みかけないですね。
昔は良く捕まえて虫かごにいれておいたんですが。

3 :デフォルトの名無しさん:02/12/23 12:41
冬休みの宿題は終わりましたか?

4 :デフォルトの名無しさん:02/12/23 12:43
あぁ、冬休み始まった。始まりましたか?

5 :デフォルトの名無しさん:02/12/23 12:45
はじめまして〜〜。

6 :デフォルトの名無しさん:02/12/23 12:45
過去スレ
バッチファイルについて語ったり質問したりするスレ
http://pc.2ch.net/tech/kako/1006/10061/1006167121.html

関連スレ
バッチ_スレ
http://pc.2ch.net/tech/kako/1018/10181/1018163331.html

7 :デフォルトの名無しさん:02/12/25 06:35
良スレ期待あげ

8 :デフォルトの名無しさん:02/12/25 08:22
うざいから結論だけ書いて沈めよう。

使用できる命令:
DOS内部コマンドとほぼすべての外部コマンド。

使用できる制御構造:
IF FOR GOTO

主にバッチファイル専用コマンド:
BATKEY PAUSE CHOICE

変数:
使えるがその用途は限りなく少ない。環境変数は使える。

レベル:
BASIC以下。プログラミングと呼ぶのも憚られる。

楽しみ方:
他のプログラミング言語と違い大量の制限があるためその制限を超えた何かを作ること。

9 :デフォルトの名無しさん:02/12/25 08:42
なにがうざいんだか・・・。

10 :デフォルトの名無しさん:02/12/25 08:45
>>9
存在。

11 :デフォルトの名無しさん:02/12/25 11:34
>>8
pl2batのようなことやると
バッチファイル内にperlのスクリプトかけるから
なんでもできそうやな

近視眼だとそれだけで終わっちゃうけど

12 :デフォルトの名無しさん:02/12/25 11:37
>>11
じゃあはじめからperl使えよと。と言う話になったり。

13 :11:02/12/25 12:11
自分が使うならそれでいいんだけど、
他人に使わせる時にいちいちperl -f xxx para para とか書かせるのが。
知識ある人ばっかりじゃないんだから,隠蔽してあげられるところは
隠蔽したほうがね…

14 :デフォルトの名無しさん:02/12/25 12:14
               ↓   
★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★・裏情報取引サイト→http://www.kawachi.zaq.ne.jp/dpdan803/
★・国際免許取得→→→http://www.kawachi.zaq.ne.jp/dpdan803/
★・あらゆる調査→→→http://www.kawachi.zaq.ne.jp/dpdan803/
★★★★★★★★★★★★★★★★★★★★★★★★★★★★

15 :11:02/12/25 12:15
追記
それならbatではなく実行ファイルにしておけたらいいけど、
できるならばソースはいつでも手が入れられたり覗けるようにするほうが
自分が居なくなったりしても混乱が減らせるでそ。

(退職などで)ツール作って残してくれてる人もいるが、
環境が変わった際に変更できないといちいち車輪を発明しなおさないと
いけないのが面倒で…
(あと,ジョブセキュリティにするような輩とかもいるし・・・)

この形で運用できるのは結構便利だったりする。

16 :デフォルトの名無しさん:02/12/25 13:41
>>13
SOSで.com化とか。
ついでにつっこんどくと、perlに-fオプションはない。

17 :デフォルトの名無しさん:02/12/25 15:08
>>2
それはバッチ

18 :デフォルトの名無しさん:02/12/25 18:32
>>13
そう言うときのバッチファイルか!

@echo off

perl -f xxx %1 %2

19 :135:02/12/26 13:13
>>16
ごめん。sedとごっちゃになってた…

20 :デフォルトの名無しさん:02/12/26 13:16
bat2com⇒com2exe

com2txt

21 :デフォルトの名無しさん:02/12/26 13:48
>>8
callが抜けている。

22 :デフォルトの名無しさん:02/12/26 14:00
>>21
わすれてたyo・・・頭の中にはあったんだがなぁ・・・。

23 :デフォルトの名無しさん:02/12/26 16:13
@rem={
perl %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
goto EXIT
}

#perl script

exit;

:EXIT


24 :デフォルトの名無しさん:02/12/26 22:09
>>23
ああ、すぐわかるPerlか何かに載ってたなぁ・・・。

25 :デフォルトの名無しさん:02/12/28 07:09
いつの間に複数行コメントが使えるようになったんだ。

26 :25:02/12/28 07:18
違った。cygwinのviで作ったんでLFになってた。
でもこれでバッチには無視される行ってできないかな。

@rem = undef;
# perl script
exit;

^M
perl %0 %1 %2 %3 %4 %5 %6 %7 %8 %9




27 :デフォルトの名無しさん:02/12/28 10:12
>>26
間違ってるというかなんじゃそら。

28 :デフォルトの名無しさん:02/12/28 10:55
>>27
具体的にどのへんが間違ってる?


29 :デフォルトの名無しさん:03/01/09 02:52
j

30 :デフォルトの名無しさん:03/01/09 03:34
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

31 :デフォルトの名無しさん:03/01/09 04:17
ID:ZBsKvw39 (゚∀゚)アヒャヒャ
ID:ZBsKvw39 (゚∀゚)アヒャヒャ
ID:ZBsKvw39 (゚∀゚)アヒャヒャ

32 :デフォルトの名無しさん:03/01/09 13:21
はじめまして〜〜。

33 :デフォルトの名無しさん:03/01/09 13:52
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

34 :デフォルトの名無しさん:03/01/09 14:45
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。          
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
   
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm
  
ようするに上告しても今の制度では100%無駄。 これで完全終了ってことか。


35 :デフォルトの名無しさん:03/01/09 17:38
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

36 :デフォルトの名無しさん:03/01/10 08:29
>>593
同意。いろんな状況があるけど、結局たどり着くところはそこだと思う。

37 :デフォルトの名無しさん:03/01/10 09:50
fDUMwxQm、がっかりさせんなよ!
時間の約束が守れない奴はどんなに偉かろうが人間的にもうだめぽ

38 :デフォルトの名無しさん:03/01/10 10:31
 結構厳しいんです。

正直、コレから5年で5兆日本円(機軸)
稼ぐ事は普通に結構出来ますが

「目先の」 小さな事が僕にとって大事です。
お願いします。
助けを頂きたいのです。かなりヤバイです
一刻の猶予が完全に無いんです

大丈夫でしょうか、
けんすう様(泣

39 :デフォルトの名無しさん:03/01/10 11:02
>>539
マジに見える貴方がバッカみたい。
しかし、もう寝るので許すよ。

40 :デフォルトの名無しさん:03/01/10 11:47
何を一人でぶつぶつ

41 :デフォルトの名無しさん:03/01/10 12:17
Windowsとソフトウェアでまた荒らしが始まった予感。

42 :デフォルトの名無しさん:03/01/10 13:07
2ちゃんねるがアクセスログ記録を始めましたが、あなたの考えは?
http://dailynews.yahoo.co.jp/fc/computer/2channel/ の左下


43 :デフォルトの名無しさん:03/01/10 15:29

趣旨は理解しているのだが
空気も趣旨も読めない筋肉あらいぐまに乱入されたら
罵倒合戦になっても致し方あるまい

44 :デフォルトの名無しさん:03/01/10 16:56
266 名前:番組の途中ですが名無しです[] 投稿日:03/01/08 19:09 ID:2HVC1UGm
この板は中と半端な馬鹿が集まってきているから好き


267 名前:番組の途中ですが名無しです[] 投稿日:03/01/08 19:10 ID:qfaGu+ZB
じゃあさトップに閲覧料1分1億円てかいといて訴えられるたびに請求したら良くない?


45 :デフォルトの名無しさん:03/01/10 23:18
IPが理解不能な厨には効果ない罠。

46 :デフォルトの名無しさん:03/01/10 23:24
全ての板ってことっすか?

47 :デフォルトの名無しさん:03/01/11 00:41
今回の件で言論の自由さえも脅かされることになるかも
誰も何も言えない時代が来そうな伊予柑

48 :デフォルトの名無しさん:03/01/11 00:49
匿名掲示板の意味を履き違えてる人が多くて萎える。

49 :デフォルトの名無しさん:03/01/11 10:11
実際は、トマトしないと変化は少ないだろうね。

ヲチ板を見ればわかるが、基本的に警察・裁判所以外には情
報を出さないということは、相手が事件化させ名前が知れ渡る
可能性があっても敢えて訴えるというほどの決意を持たない限
り大丈夫ってことだから。

だから、当面基本的には変わらないだろ。

尤も、今後そういう訴える奴も増えていくだろうし、
中には刑事事件化するものもでるだろう。

あとはさらなるリスクを冒してまでひろゆきが、
そこまで放置していられるかどうかだろうね。

50 :デフォルトの名無しさん:03/01/11 10:19


















             バカに乗っ取られたマターリスレ晒しage中。

51 :デフォルトの名無しさん:03/01/11 10:44
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

52 :デフォルトの名無しさん:03/01/11 10:48
10

53 :デフォルトの名無しさん:03/01/11 11:16
さかだちしながら10げっと

54 :デフォルトの名無しさん:03/01/11 12:19
実況板で聞いたんだが、強制ID板では昔から抜かれてたらしいが>IP

55 :デフォルトの名無しさん:03/01/11 12:53
快速がレスつけてんの半年ぶりぐらいに見た

56 :デフォルトの名無しさん:03/01/11 15:41
 IP記録告知以後、2chのどの板も、どのスレも、だいぶ静かになった
ような気がする。

 今まで如何に無責任な書き込みが多かったかを示しているような
気もするけど、閑散として活気もなくなったような気もする。

57 :デフォルトの名無しさん:03/01/11 15:46
おぉーついに…
でも全員が閲覧できるわけじゃないから
ヤバイこと書き込まなきゃOKなんでしょ?

58 :デフォルトの名無しさん:03/01/12 02:37
2002年2ちゃんねるアニメランキング1位のアニメに・・・・

モナーが出演決定!!!!!!!!!!!!!!!!!!!!!

<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00 

59 :デフォルトの名無しさん:03/01/12 02:42
荒らしを何とかして〜!!!!
また孫悟空だろう。

60 :デフォルトの名無しさん:03/01/12 10:10
朝から大変
何て事してくれんのよ
キラーって奴は・・・
戦って守りきりますよ
母は強し

61 :デフォルトの名無しさん:03/01/12 10:13
掲示板の書き込みを24時間365日チェックしなさいと言う事だから、規模的
に管理人一人じゃどうしようもない。。が、当然2chだけじゃなく他の掲示板に
も大きな問題となる判決だ、、


62 :デフォルトの名無しさん:03/01/12 20:55
ちくり裏事情なんかは、WINNY掲示板みたいなWINNY型P2Pにして、
2ちゃんからリンクして拾ってくるようにできんかな?

63 :デフォルトの名無しさん:03/01/12 20:58
zD2HIsxl
厨房逝ってよし。

64 :デフォルトの名無しさん:03/01/12 21:07
なんか各所で「ブラウザを立ち上げ直してください」とかいうエラーでて書き込めないって
人がいるけど、それって何をするとでるの?
俺は見たこと無い。

65 :山崎渉:03/01/13 18:44
(^^)

66 :山崎渉:03/01/16 03:20
(^^)

67 :デフォルトの名無しさん:03/01/16 12:41
板違いでスマンが、
VBSのスレを知りませんか?


68 :山崎渉:03/01/23 20:13
(^^)

69 :デフォルトの名無しさん:03/01/28 14:10
以後sage進行でおながいします

70 :デフォルトの名無しさん:03/01/28 14:51
内部コマンド (Win95)
CD
COPY
CLS
CTTY
DATE
DEL / ERASE
DIR
ECHO
EXIT
FOR
IF
MD / MKDIR
PATH
PAUSE
PROMPT
RD /RMDIR
REN /RENAME
SET
SHIFT
TIME
TYPE
VER
VOL

71 :デフォルトの名無しさん:03/01/28 14:52
外部コマンド
ATTRIB
CHOICE
FORMAT
MOVE
COMMAND
糞多いので省略

72 :デフォルトの名無しさん:03/01/28 14:58
Cとバッチファイルの大きな違い

コンパイル不要
特別なソフト不要
数値が扱えない
低速

73 :デフォルトの名無しさん:03/01/28 15:04
バッチコマンドを使えると得する事

拡張子などのリネーム作業を大幅に短縮できる
ネットワークとかシステムの細かな設定が可能

いわゆるCUIでの操作なのでコマンドを覚えるのが大変(らしい)

74 :デフォルトの名無しさん:03/01/28 15:08
あ、REM忘れてた(w >>70

75 :デフォルトの名無しさん:03/01/28 15:25
@echo off
rem /* レジストリ保存 win9x */
rem /* intpathでパス指定、ここでは"?:\" */
set intpath=\

if "%1" == "" goto err
cd %intpath%
md %1
cd %1
for %%i in (user;system) do \windows\command\attrib -r -s -h \windows\%%i.dat > nul
for %%i in (user;system) do copy \windows\%%i.dat
goto exit

:err
echo %%1を指定せよ

:exit
set intpath=
exit

これをファイル名を指定して実行のダイアログにドラッグして[space]+フォルダ名でウマー
例 C:\hoge.bat 123456

76 :デフォルトの名無しさん:03/01/30 08:11
>>75
> for %%i in (user;system) do \windows\command\attrib -r -s -h \windows\%%i.dat > nul
> for %%i in (user;system) do copy \windows\%%i.dat
セミコロン区切りってできるんだっけ。

77 :デフォルトの名無しさん:03/01/30 13:58
>>76
できる。スペースとかカンマでもできるけど、
自分でそれがいいと思うのを使えばいい

@echo off
echo space
for %%i in (1 2 3) do echo %%i
pause >nul
echo ;
for %%i in (1;2;3) do echo %%i
pause >nul
echo ,
for %%i in (1,2,3) do echo %%i
pause >nul
exit

78 :デフォルトの名無しさん:03/01/30 14:01
VERIFYも忘れてたな>70

79 :デフォルトの名無しさん:03/01/30 14:03
CALL

80 :デフォルトの名無しさん:03/01/30 14:04
GOTO

81 :デフォルトの名無しさん:03/01/31 09:16
バッチファイルの引数が=で分割されるってのは昔からだっけ?

82 :デフォルトの名無しさん:03/02/01 17:49
から

83 :デフォルトの名無しさん:03/02/01 17:54
■ 棚からボタ餅MS-DOS
http://pcweb.mycom.co.jp/column/msdos.html

84 :デフォルトの名無しさん:03/02/03 20:46
MS-DOSはOSなのか?
http://pc.2ch.net/test/read.cgi/prog/1043591614/
MS-DOS ってどうよ
http://pc.2ch.net/test/read.cgi/os/1010640399/

85 :デフォルトの名無しさん:03/02/04 17:57
>>82>>81への回答?
いつごろからか知ってる?


86 :デフォルトの名無しさん:03/02/04 18:48
>>85
3.3で動作確認

87 :デフォルトの名無しさん:03/02/04 22:53
@echo off
rem /* レジストリ保存&復元ユーテリティ win9x */
set intpath=\

if "%1" == "/?" goto usage
if "%1" == "" goto usage
if not exist \windows\command\attrib.exe goto err
echo レジストリ保存&復元ユーテリティ win9x
echo レジストリを保存作業を開始します.
echo 開始ディレクトリは ?:%intpath% です.
echo/
for %%i in (user;system) do \windows\command\attrib -r -h -s \windows\%%i.dat
echo ?:%intpath%ディレクトリを作成しています...
md %intpath%%1
if exist %intpath%%1\*.* del %intpath%%1\*.??? >nul
echo/
for %%i in (user;system) do copy \windows\%%i.dat %intpath%%1 > nul
echo %intpath%%1へレジストリを保存しました
echo 復元ユーテリティをコピーしています...
cd %intpath%%1
set p=%%

echo @echo off>regback.bat
echo rem /* レジストリ保存&復元ユーテリティ win9x */>>regback.bat
echo/>>regback.bat
echo if not exist \windows\command\attrib.exe goto err>>regback.bat
echo echo レジストリ復元ツール>>regback.bat
echo echo レジストリを復元します.>>regback.bat
echo echo/>>regback.bat
echo echo 以前のバックアップファイルを.\backup\に保存します.>>regback.bat

88 :デフォルトの名無しさん:03/02/04 22:53
echo for %p%%p%i in (user;system) do \windows\command\attrib -r -h -s \windows\%p%%p%i.dat>>regback.bat
echo md backup>>regback.bat
echo if exist backup\*.* del backup\*.??? > nul>>regback.bat
echo for %p%%p%i in (user;system) do copy \windows\%p%%p%i.dat .\backup > nul>>regback.bat
echo echo 以前のバックアップファイルを.\backup\に保存しました.>>regback.bat
echo echo/>>regback.bat
echo echo レジストリを復元しています...>>regback.bat
echo echo 復元中は絶対にウィンドウを閉じないでください.>>regback.bat
echo for %p%%p%i in (user;system) do del \windows\%p%%p%i.dat>>regback.bat
echo copy *.dat \windows>>regback.bat
echo echo レジストリを復元に成功しました.>>regback.bat
echo echo レジストリを反映させるには再起動をしてください.>>regback.bat
echo goto exit>>regback.bat
echo/>>regback.bat
echo :err>>regback.bat
echo echo エラー: \windows\command\attrib.exeが見つかりません>>regback.bat
echo/>>regback.bat
echo :exit>>regback.bat
echo exit>>regback.bat

echo レジストリ保存作業完了しました。
goto exit

:err
echo エラー: \windows\command\attrib.exeが見つかりません
echo/
goto exit

:usage
echo レジストリ保存&復元ユーテリティ win9x

89 :デフォルトの名無しさん:03/02/04 22:54
echo レジストリを保存&復元します
echo/
echo ???.bat [フォルダ名]
echo/
echo [フォルダ名] 保存したいフォルダの名前を指定します.

:exit
set p=
exit



レジストリを復元したりするツールですが

90 :デフォルトの名無しさん:03/02/05 10:59
>>86
そうか、ずっとそうだったのか。知らんかったよ。
逝って来る前にもう一つだけ、これって常識?

91 :デフォルトの名無しさん:03/02/05 12:03
エミュレータとか使ってないのか?

92 :デフォルトの名無しさん:03/02/05 12:08
DOSなんて持ってないよ。

93 :デフォルトの名無しさん:03/02/05 12:09
>>8の内容

>主にバッチファイル専用コマンド:
>BATKEY PAUSE CHOICE

あほ

94 :デフォルトの名無しさん:03/02/06 11:13
>92に質問だが、
持ってるOSは何
プログラミング(?暦はどのくらい
エスケープシーケンスは使った事があるか

95 :デフォルトの名無しさん:03/02/06 11:28
>>94
> 持ってるOSは何
メインはLinux

> プログラミング(?暦はどのくらい
20年くらい

> エスケープシーケンスは使った事があるか
ある。今でもbashのプロンプトに使ったりするし。

>>92は「DOSなんて(もう)持ってない」ってこと。すまん。

96 :デフォルトの名無しさん:03/02/06 11:46
Linuxだったか。最近Phat使ってなかったから、てっきりWinの事だと思ってたYo!スマン

97 :デフォルトの名無しさん:03/02/06 12:05
:
ALIAS
BIND
BUILTIN
CD
COMPGEN
CONTINUE
DIRS
ECHO
EVAL
EXIT
FALSE
FG
FUNCTION
HASH
HISTORY
JOBS
LET
LOGOUT
PRINTF
PWD
READONLY
SELECT
SHIFT
SOURCE
TEST
TRUE
TYPESET
UMASK
UNSET
VARIABLES
WHILE

98 :デフォルトの名無しさん:03/02/06 12:48
>>97
何のbuiltinか知らんが、FGはあってもBGはないのか?


99 :デフォルトの名無しさん:03/02/07 11:23
>>98
helpコマンドからそのまま引っ張ったから。

100 :デフォルトの名無しさん:03/02/13 05:10
>>99
CygWinの方(一部)
fg [job_spec] for NAME [in WORDS ... ;] do COMMA
for (( exp1; exp2; exp3 )); do COM function NAME { COMMANDS ; } or NA
getopts optstring name [arg] hash [-lr] [-p pathname] [-dt] [na
help [-s] [pattern ...] history [-c] [-d offset] [n] or hi
if COMMANDS; then COMMANDS; [ elif jobs [-lnprs] [jobspec ...] or job
kill [-s sigspec | -n signum | -si let arg [arg ...]
local name[=value] ... logout
popd [+N | -N] [-n] printf format [arguments]
pushd [dir | +N | -N] [-n] pwd [-PL]
read [-ers] [-u fd] [-t timeout] [ readonly [-anf] [name[=value] ...]
return [n] select NAME [in WORDS ... ;] do CO
set [--abefhkmnptuvxBCHP] [-o opti shift [n]
shopt [-pqsu] [-o long-option] opt source filename
suspend [-f] test [expr]
time [-p] PIPELINE times
trap [arg] [signal_spec ...] or tr true
type [-afptP] name [name ...] typeset [-afFirtx] [-p] name[=valu
ulimit [-SHacdflmnpstuv] [limit] umask [-p] [-S] [mode]
unalias [-a] [name ...] unset [-f] [-v] [name ...]
until COMMANDS; do COMMANDS; done variables - Some variable names an
wait [n] while COMMANDS; do COMMANDS; done
{ COMMANDS ; }


101 :デフォルトの名無しさん:03/02/13 21:18
ここには他に二人いるのか?

102 :デフォルトの名無しさん:03/02/14 15:13
誰の他に?

103 :デフォルトの名無しさん:03/02/14 18:52
自分と>103の他

104 :デフォルトの名無しさん:03/02/14 18:52
>102の間違い

105 :デフォルトの名無しさん:03/02/14 19:34
92==95==98==102なわけだが。

106 :デフォルトの名無しさん:03/02/14 22:12
はにゃ〜ん

3人いるらしぃ


107 :デフォルトの名無しさん:03/02/15 18:03
97==99==101==103-104だから。

108 :デフォルトの名無しさん:03/02/16 05:47
100=106

109 :デフォルトの名無しさん:03/02/16 10:23
94==96もいれると4人か?

110 :デフォルトの名無しさん:03/02/16 10:28
94==96==97==99==101==103-10

111 :デフォルトの名無しさん:03/02/16 10:36
ほんとに3人だけかよ

112 :デフォルトの名無しさん:03/02/16 11:52
恐らく

113 :デフォルトの名無しさん:03/02/17 11:59
正直、バッチファイルでゲームとか作ってみたいと思ったことがある

114 :デフォルトの名無しさん:03/02/17 15:25
>>113
神!!

BATKEYとかあればジャンケンゲームとかくらいなら作れそうな気がするが、こ
れだけやる気をそそられない課題も珍しい。


115 :デフォルトの名無しさん:03/02/17 18:10
その後、本気で作ろうとしたんだ。
でも行が数千行にもなって、途中でヤメタ。
もうすぐで完成しそうだけど、それを作り続ける気力が無い…

116 :デフォルトの名無しさん:03/02/17 18:38
一体何のゲームを作ろうとしたわけ?

117 :デフォルトの名無しさん:03/02/17 21:04
RPGとかアクションは絶対無理だから、クイズかパズルにしようかと思ったが、
なぜか迷路を作ろうとおもたよ

118 :デフォルトの名無しさん:03/02/17 21:40
たしかに三択クイズとかならできそうだが、バッチで迷路ってどうやって表示
すんのよ。


119 :デフォルトの名無しさん:03/02/17 23:11
迷路の画面というのか?それは外部ファイルを別途用意して
type [ファイル名]。
typeコマンドはエスケープシーケンスも読みこんでくれる

120 :デフォルトの名無しさん:03/02/18 07:15
>>119
タイプだぁ〜?
echo を使え


121 :デフォルトの名無しさん:03/02/18 12:06
最初は全てひとつのファイルでecho沢山使ってたけど、
ファイル自体が大きくなる。そうなると、gotoとか多く使うでしょ。
gotoって、意外と時間かかるから、プレイする時間より待つ時間の方が長くなる。
だからなるべく早く処理するためには、システムファイル(exeとdllに値する部分)と見る部分のファイル
(ビットマップに値する部分のファイル)を分離せざるを得ないと思われ。

122 :デフォルトの名無しさん:03/02/18 16:26
表示する部分を別のbatにしてcallすればgotoの処理速度低下を抑えられるかな?


123 :デフォルトの名無しさん:03/02/18 18:57
gotoは前方への分岐の方が速いってのがあったな。
プロセスの生成+分割されたファイルの読み込みと、
でかい単一ファイルの読み込みのどっちが重いかってことになるのかな。

124 :デフォルトの名無しさん:03/02/18 20:51
読みだし速度が遅いフロッピーで動かすといかにgotoの読みだしが遅いかよくわかるよ。
だいたい4-50KB、1500行ぐらいになると厳しいね。
だから、分割はそのくらいで分割してる。
callは設定ファイルを読み込む時に使ってる。

125 :デフォルトの名無しさん:03/02/19 01:28
>>124
> だいたい4-50KB、1500行ぐらいになると厳しいね。
それだけ書くってとこで凄すぎ。というか呆れた。

126 :デフォルトの名無しさん:03/02/19 18:25
Cとかでも1000行を超えることは結構あることを考えると
そのぐらい、どうってことないと思うが

127 :デフォルトの名無しさん:03/02/19 21:52
BATKEYじゃなくてCHOICEを使ってる

128 :デフォルトの名無しさん:03/02/19 22:21
いや、現在形で聞かれてもなー

129 :デフォルトの名無しさん:03/02/27 09:44
j

130 :set /?より:03/02/27 10:44
SET コマンドには、2 つの新しいスイッチが追加されています:

SET /A 式
SET /P 変数=[プロンプト文字列]

/A スイッチは、等号の右側の文字列が、評価すべき数式であることを
指定します。式の評価はごく単純で、次の操作がサポートされます。
操作は、優先順位の高い順に示されています:

() - グループ化
* / % - 算術演算子
+ - - 算術演算子
<< >> - 論理シフト
& - ビット演算子 AND
^ - ビット演算子排他的 OR
| - ビット演算子 OR
= *= /= %= += -= - 代入
&= ^= |= <<= >>=
, - 式の区切り記号

131 :set /?より:03/02/27 10:45
環境変数の置換は、次のように拡張されます:

%PATH:文字列1=文字列2%

は、PATH 環境変数を展開し、その結果に含まれるすべての "文字列1" を
"文字列2" に置き換えます。"文字列2" に空の文字列を指定すると、展開
された出力からすべての "文字列1" を削除することができます。"文字列1"
をアスタリスクで始め、展開された出力の先頭から、文字列1 の残りの部分
が最初に現れるまでのすべてを一致させることもできます。

132 :set /?より:03/02/27 10:45
また、展開の副文字列を指定することもできます。

%PATH:~10,5%

は、PATH 環境変数を展開し、展開結果の 11 番目 (オフセット 10) の文字
から始まる 5 文字だけを使います。長さが指定されなかった場合は、変数の
値の残りの長さを既定値とします。オフセットまたは長さのどちらかが負の値
の場合、環境変数の値の長さに指定されたオフセットまたは長さを足してその
数を使います。

%PATH:~-10%

は、パス変数の最後の10 文字が展開されます。

%PATH:~0,-2%

は最後の 2 文字以外のすべてが展開されます。

133 :set /?より:03/02/27 10:46
最後に、遅延環境変数の展開が追加されました。このサポートは常に既定で
無効になっていますが、CMD.EXE の /V: のコマンド ライン スイッチを使
って有効または無効にできます。CMD /? を参照してください。

遅延環境変数の展開は、実行時ではなく、テキスト行を読み取るときに展開
されるという現在の制限を避けるために役立ちます。
次の例は即時変数展開の問題を説明しています。

set VAR=before
if "%VAR%" == "before" (
set VAR=after;
if "%VAR%" == "after" @echo If you see this, it worked
)

この例は、論理的には IF 文が別の IF 文の本体に含まれる複合文なので、
両方の IF 文の %VAR% が、最初の IF 文を読み取ったときに展開されます。
このため、メッセージは決して表示されません。複合分の中の IF では "before"
と "after" が比較され、決して等しくはなりません。同様に次の例も期待し
たようには動作しません。

134 :set /?より:03/02/27 10:47
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%

この例では、現在のディレクトリのファイルの一覧は作成されず、代わりに最後
に見つけられたファイルが LIST 変数に設定されます。これは %LIST% が FOR 文
が読み取られるとき、一度だけ展開され、そのときは LIST 変数は、空だからです。
つまり、実際に実行されている FOR ループは

for %i in (*) do set LIST= %i

で、LIST に最後にみつけられたファイルを設定し続けているだけです。

135 :set /?より:03/02/27 10:47
遅延環境変数の展開では、実行時に環境変数を展開するために異なった文字
(感嘆符)を使うことができます。遅延環境変数の展開が有効な場合、上記の
例は次のように書くと意図したように動作します。

set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo If you see this, it worked
)

set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%

136 :set /?より:03/02/27 10:52
コマンド拡張機能が有効な場合、SET によって表示される変数の一覧には
現れないいくつかの動的な環境変数があります。これらの変数の値は、変数の
値が展開されるときに動的に計算されます。ユーザーがこれらの名前の変数を
明示的に定義する場合、その定義は下記の動的な定義を無効にします。

%CD% - 現在のディレクトリ文字列に展開します。

%DATE% - DATE コマンドと同じフォーマットで現在の日付に展開します。

%TIME% - TIME コマンドと同じフォーマットで現在の時刻に展開します。

%RANDOM% - 0 から 32767 の間の任意の 10 進数に展開します

%ERRORLEVEL% - 現在の ERRORLEVEL の値に展開します。

%CMDEXTVERSION% - 現在のコマンド プロセッサ拡張機能のバージョン番号に
展開します。

%CMDCMDLINE% - コマンド プロセッサを起動したオリジナル コマンドライン
に展開します。

137 :for /?より:03/02/27 11:04
FOR /D %変数 IN (セット) DO コマンド [コマンドパラメータ]

セットがワイルドカードを含む場合は、ファイル名ではなくディレクトリ名
の一致を指定します。

FOR /R [[ドライブ:]パス] %変数 IN (セット) DO コマンド [コマンドパラメータ]

[ドライブ:]パスから始めて、ツリーの各ディレクトリで FOR 文を実行し
ます。/R の後にディレクトリが指定されていない場合は、現在の
ディレクトリが使用されます。セットが単一のピリオド (.) である場合は、
ディレクトリ ツリーの列挙だけを行います。

138 :for /?より:03/02/27 11:04
ファイル名セットは、1 つ以上のファイル名です。各ファイルが開かれ、読み
取られ、処理されてから、ファイル名セットの次のファイルに進みます。処理
には、ファイルの読み取り、個々のテキスト行への分割と、0 個以上のトークン
への解析が含まれます。その後、変数値を見つかったトークン文字列に設定して、
for ループの本体が呼び出されます。既定では、/F は、各ファイルの各行から、
空白で区切られた最初のトークンを渡します。空白行はスキップされます。既定
の解析動作を変更するには、オプションの "オプション" パラメータを指定しま
す。これは、異なる解析オプションを指定する 1 つ以上のキーワードを含む、
引用符で囲まれた文字列です。キーワードは、次のとおりです:

eol=c - 行末のコメント文字を指定します (1 文字)。
skip=n - ファイルの先頭でスキップする行数を指定します。
delims=xxx - 区切り文字のセットを指定します。これは、既定の
区切り文字であるスペースとタブを置き換えます。
tokens=x,y,m-n - 各繰り返しに対して、各行から for 本体に渡すトー
クンを指定します。これにより、追加の変数名が割り当
てられます。m-n の形式は範囲で、m 番目から n 番目の
トークンを指定します。tokens= 文字列の最後の文字が
アスタリスクである場合は、追加の変数が割り当てられ、
最後のトークンが解析された後、行に含まれている残り
のテキストを受け取ります。
usebackq - 次の新しい表示形式を指定します。逆引用符で囲まれた
文字列がコマンドとして実行され、一重引用符で囲まれた
文字列がリテラル文字列コマンドになりファイル名セット
のファイル名を二重引用符で囲めるようになります。

139 :for /?より :03/02/27 11:05
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k


この例は、myfile.txt の各行を解析します。セミコロンで始まる行を無視し、
各行の 2 番目と 3 番目のトークンを for 本体に渡します。トークンは、カンマ
またはスペースで区切られています。for 本体の文が %i で 2 番目のトークン
を、%j で 3 番目のトークンを取得し、%k で 3 番目移行のすべてのトークンを
取得していることに注意してください。スペースを含むファイル名に対しては、
二重引用符でファイル名を引用する必要があります。この方法で二重引用符を使う
ためには、usebackq オプションを使わなければなりません。使わなければ、二重
引用符はリテラル文字列の定義として解釈され、解析されます。

%i は for 文で明示的に宣言され、%j と %k は tokens= オプションで
暗黙的に宣言されています。tokens= 行を使って 26 個までのトークンを
指定できますが、文字 'z' または 'Z' よりも高い変数を宣言することは
できません。FOR 変数名は大文字と小文字を区別し、グローバルなもので
あり、一度にアクティブにできるのは合計 52 個までです。

また、カッコで囲んだファイル名セットを一重引用符で囲み、文字列にすることに
より、即時の文字列に対する FOR /F 解析ロジックを使うこともできます。
これは、ファイルからの単一入力行として処理されます。

最後に、FOR /F コマンドを使って、コマンド出力を解析することができます。
カッコの中のファイル名セットを逆引用符で囲みます。この文字列は、コマンド
ラインとして子 CMD.EXE に渡されます。出力はメモリにキャプチャされ、ファイ
ルのように解析されます。
例:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

この例は、現在の環境の環境変数名を列挙します。

140 :for /?より:03/02/27 11:06
また、FOR 変数参照の置換も拡張されました。
次のオプション構文を使うことができます:

%~I - すべての引用句 (") を削除して、I を展開します。
%~fI - %I を完全修飾パス名に展開します。
%~dI - %I をドライブ文字だけに展開します。
%~pI - %I をパス名だけに展開します。
%~nI - %I をファイル名だけに展開します。
%~xI - %I をファイル拡張子だけに展開します。
%~sI - 展開されたパスは短い名前だけを含みます。
%~aI - %I をファイルの属性に展開します。
%~tI - %I ファイルの日付/時刻に展開します。
%~zI - %I ファイルのサイズに展開します。
%~$PATH:I - PATH 環境変数に指定されているディレクトリを
検索し、最初に見つかった完全修飾名に %I を
展開します。
環境変数名が定義されていない場合、または検索
してもファイルが見つからなかった場合は、この
修飾子を指定すると空の文字列に展開されます。

修飾子を組み合わせて、複合結果を得ることもできます:

%~dpI - %I をドライブ文字とパスだけに展開します。
%~nxI - %I をファイル名と拡張子だけに展開します。
%~fsI - %I を完全なパスと短い名前だけに展開します。
%~dp$PATH:i - PATH 環境変数に指定されているディレクトリを
検索して %I を探し、最初に見つかったファイル
のドライブ文字とパスだけに展開します。
%~ftzaI - %I を DIR コマンドの出力行のように展開します。

141 :デフォルトの名無しさん:03/02/27 11:08
>>130-140
バッチファイルプログラミング Win2K(NT?)以上ならかなりいけます。

142 :デフォルトの名無しさん:03/02/27 11:11
珍しく人がいる

143 :デフォルトの名無しさん:03/02/27 11:38
@echo off
echo 三角形の面積
set /p a=底辺入力?
set /p b=高さ入力?
set /a c=a*b/2
echo %c%

144 :デフォルトの名無しさん:03/02/27 12:18
※cmd /V:ONでコマンドプロンプトを起動すること

@echo off
echo 先頭文字だけ小文字→大文字変換
set /p str=アルファベット入力?
set ch=%str:~0,1%
set lower=abcdefghijklmnopqrstuvwxyz
set upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
for /L %%i in (0,1,25) do call :uppercase_loop %%i

echo %ch%%str:~1%
goto :eof

:uppercase_loop
set l=!lower:~%1,1!
set u=!upper:~%1,1!
set ch=!ch:%l%=%u%!

145 :デフォルトの名無しさん:03/02/27 12:37
CSV→HTML変換
@echo off
echo ^<table^>
FOR /F "eol=; tokens=1,2,3 delims=, " %%i in (test.csv) do echo ^<tr^> ^<td^>%%i^</td^> ^<td^>%%j^</td^> ^<td^>%%k^</td^> ^</tr^>
echo ^</table^>

test.csvの中身
商品,値段,個数
りんご,80,10
みかん,90,20
ばなな,100,30

146 :デフォルトの名無しさん:03/02/27 19:21
バッチファイル最強説

147 :デフォルトの名無しさん:03/02/27 22:22
WSH対抗上げ

148 :デフォルトの名無しさん:03/02/28 15:31
対抗というより共存だろうな

149 :ジャンケンゲーム:03/03/01 10:30
※cmd /V:ONでコマンドプロンプトを起動すること

@echo off&echo ジャンケンゲーム&set win=0&set lose=0&set player=&set cpu=&set msg=1
set name1=グー&set name2=チョキ&set name3=パー&set msg_name1=ジャンケン?&set msg_name2=あいこで?&set err_msg=入力エラー
set t11=draw&set t12=win&set t13=lose&set t21=lose&set t22=draw&set t23=win&set t31=win&set t32=lose&set t33=draw
:start
set player=&set /p player=!msg_name%msg%!(1:%name1% 2:%name2% 3:%name3% 9:終了) &set /a cpu=%random% / 10923 + 1
if /%player% EQU /9 (echo 結果&echo 勝ち:%win% 負け:%lose%&goto :EOF) else if /%player% LSS /1 (echo %err_msg%&goto :start) else if /%player% GTR /3 (echo %err_msg%&goto :start)
goto !t%player%%cpu%!
:win
echo 勝ち プレイヤー:!name%player%! CPU:!name%cpu%!&set /a win+=1&set msg=1&goto :start
:lose
echo 負け プレイヤー:!name%player%! CPU:!name%cpu%!&set /a lose+=1&set msg=1&goto :start
:draw
echo あいこ プレイヤー:!name%player%! CPU:!name%cpu%!&set msg=2&goto :start

150 :デフォルトの名無しさん:03/03/01 10:56
あいこーーーーーーー(TT)                (謎)

151 :デフォルトの名無しさん:03/03/01 11:10
>>150 もう明日になっても会えません。

152 :デフォルトの名無しさん:03/03/01 22:00
せっかくジャンプテーブルもどきまで使ったのにレスつかないと寂しいな。

153 :デフォルトの名無しさん:03/03/03 12:12
:1
@echo off
echo   人
echo  (  )
echo ヽ(・∀・)ノウンコー
goto 1

154 :デフォルトの名無しさん:03/03/03 18:31
@echo off
:#
echo 
pause
goto #

155 :calc.bat (1/6):03/03/06 23:05
四則演算ライブラリ作りますた。
一桁 x 一桁までの演算ができまつ。
----------------------------------------------------
@echo off
find "_%3_%4_" calc.bat | find "_%3_%4_">calc2.bat
rem echo %%1=%1, %%2=%2, %%3=%3, %%4=%4, %%5=%5,
if "%1"=="ADD" echo set %2=%%2>calc3.bat
if "%1"=="SUB" echo set %2=%%3>>calc3.bat
if "%1"=="MUL" echo set %2=%%4>>calc3.bat
if "%1"=="DIV" echo set %2=%%5>>calc3.bat
if "%1"=="CMP" echo set %2=%%6>>calc3.bat
if "%1"=="CMP" echo if "%%6"=="" set %2=-1>>calc3.bat
call calc2.bat calc3
del calc2.bat
del calc3.bat
goto END
:---DATA---
%1 _0_0_ 0 0 0 255 0
%1 _0_1_ 1 -1 0 0
%1 _0_2_ 2 -2 0 0
%1 _0_3_ 3 -3 0 0
%1 _0_4_ 4 -4 0 0
%1 _0_5_ 5 -5 0 0
%1 _0_6_ 6 -6 0 0
%1 _0_7_ 7 -7 0 0
%1 _0_8_ 8 -8 0 0
%1 _0_9_ 9 -9 0 0

156 :calc.bat (2/6):03/03/06 23:06
%1 _1_0_ 1 1 0 255 1
%1 _1_1_ 2 0 1 1 0
%1 _1_2_ 3 -1 2 0
%1 _1_3_ 4 -2 3 0
%1 _1_4_ 5 -3 4 0
%1 _1_5_ 6 -4 5 0
%1 _1_6_ 7 -5 6 0
%1 _1_7_ 8 -6 7 0
%1 _1_8_ 9 -7 8 0
%1 _1_9_ 10 -8 9 0
%1 _2_0_ 2 2 0 255 1
%1 _2_1_ 3 1 2 2 1
%1 _2_2_ 4 0 4 1 0
%1 _2_3_ 5 -1 6 0
%1 _2_4_ 6 -2 8 0
%1 _2_5_ 7 -3 10 0
%1 _2_6_ 8 -4 12 0
%1 _2_7_ 9 -5 14 0
%1 _2_8_ 10 -6 16 0
%1 _2_9_ 11 -7 18 0


157 :calc.bat (3/6):03/03/06 23:06
%1 _3_0_ 3 3 0 255 1
%1 _3_1_ 4 2 3 3 1
%1 _3_2_ 5 1 6 1 1
%1 _3_3_ 6 0 9 1 0
%1 _3_4_ 7 -1 12 0
%1 _3_5_ 8 -2 15 0
%1 _3_6_ 9 -3 18 0
%1 _3_7_ 10 -4 21 0
%1 _3_8_ 11 -5 24 0
%1 _3_9_ 12 -6 27 0
%1 _4_0_ 4 4 0 255 1
%1 _4_1_ 5 3 4 4 1
%1 _4_2_ 6 2 8 2 1
%1 _4_3_ 7 1 12 1 1
%1 _4_4_ 8 0 16 1 0
%1 _4_5_ 9 -1 20 0
%1 _4_6_ 10 -2 24 0
%1 _4_7_ 11 -3 28 0
%1 _4_8_ 12 -4 32 0
%1 _4_9_ 13 -5 36 0

158 :calc.bat (4/6):03/03/06 23:07
%1 _5_0_ 5 5 0 255 1
%1 _5_1_ 6 4 5 5 1
%1 _5_2_ 7 3 10 2 1
%1 _5_3_ 8 2 15 1 1
%1 _5_4_ 9 1 20 1 1
%1 _5_5_ 10 0 25 1 0
%1 _5_6_ 11 -1 30 0
%1 _5_7_ 12 -2 35 0
%1 _5_8_ 13 -3 40 0
%1 _5_9_ 14 -4 45 0
%1 _6_0_ 6 6 0 255 1
%1 _6_1_ 7 5 6 6 1
%1 _6_2_ 8 4 12 3 1
%1 _6_3_ 9 3 18 2 1
%1 _6_4_ 10 2 24 1 1
%1 _6_5_ 11 1 30 1 1
%1 _6_6_ 12 0 36 1 0
%1 _6_7_ 13 -1 42 0
%1 _6_8_ 14 -2 48 0
%1 _6_9_ 15 -3 54 0

159 :calc.bat (5/6):03/03/06 23:07
%1 _7_0_ 7 7 0 255 1
%1 _7_1_ 8 6 7 7 1
%1 _7_2_ 9 5 14 3 1
%1 _7_3_ 10 4 21 2 1
%1 _7_4_ 11 3 28 1 1
%1 _7_5_ 12 2 35 1 1
%1 _7_6_ 13 1 42 1 1
%1 _7_7_ 14 0 49 1 0
%1 _7_8_ 15 -1 56 0
%1 _7_9_ 16 -2 63 0
%1 _8_0_ 8 8 0 255 1
%1 _8_1_ 9 7 8 8 1
%1 _8_2_ 10 6 16 4 1
%1 _8_3_ 11 5 24 2 1
%1 _8_4_ 12 4 32 2 1
%1 _8_5_ 13 3 40 1 1
%1 _8_6_ 14 2 48 1 1
%1 _8_7_ 15 1 56 1 1
%1 _8_8_ 16 0 64 1 0
%1 _8_9_ 17 -1 72 0

160 :calc.bat (6/6):03/03/06 23:18
%1 _9_0_ 9 9 0 255 1
%1 _9_1_ 10 8 9 9 1
%1 _9_2_ 11 7 18 4 1
%1 _9_3_ 12 6 27 3 1
%1 _9_4_ 13 5 36 2 1
%1 _9_5_ 14 4 45 1 1
%1 _9_6_ 15 3 54 1 1
%1 _9_7_ 16 2 63 1 1
%1 _9_8_ 17 1 72 1 1
%1 _9_9_ 18 0 81 1 0
:END

161 :sample.bat:03/03/06 23:20
calc.bat を使用したサンプルプログラムでつ。
----------------------------------------------------
@echo off
set Y=0
:Yloop
set X=0
:Xloop

call calc ADD ret %Y% %X%
echo calc ADD ret %Y% %X%    ret = %ret%

call calc SUB ret %Y% %X%
echo calc SUB ret %Y% %X%    ret = %ret%

call calc MUL ret %Y% %X%
echo calc MUL ret %Y% %X%    ret = %ret%

call calc DIV ret %Y% %X%
echo calc DIV ret %Y% %X%    ret = %ret%

call calc CMP ret %Y% %X%
echo calc CMP ret %Y% %X%    ret = %ret%

call calc ADD X %X% 1
if not "%X%"=="10" goto Xloop

call calc ADD Y %Y% 1
if not "%Y%"=="10" goto Yloop
----------------------------------------------------
以上、連張りスマソ

162 :デフォルトの名無しさん:03/03/07 02:19
>>149
cmd.exeってすごいな
むむ、対抗して、dos3でも動くようにできないものか・・

163 :jyanken.bat (1/2):03/03/07 03:43
マジでけた・・・
まだdos3で実験はしていないけど
--------------------
echo off >nul
if NOT "%1"=="" goto %1
echo じゃんけんゲーム
set win=
set lose=
>player.bat
:STA
echo goo か choki か pa と打ち込んで ctrl+z の後 enter を押してください。
copy con jyanken.POI >nul
dir jyanken.POI|find "JYANKEN" >tmp.bat
tmp.bat
:POI
set player=ERR
if %2==3 set player=グー
if %2==5 set player=チョキ
if %2==2 set player=パー
if %player%==ERR echo 入力エラー
if %player%==ERR goto STA
echo %4_ | find "0_ ">jyanken.GOO
echo %4_ | find "1_ ">>jyanken.GOO
echo %4_ | find "2_ ">>jyanken.GOO
echo %4_ | find "3_ ">jyanken.CHO
echo %4_ | find "4_" >>jyanken.CHO
echo %4_ | find "5_" >>jyanken.CHO
dir jyanken.GOO|find "JYANKEN">tmp.bat
tmp.bat


164 :jyanken.bat (2/2):03/03/07 03:43
:GOO
set com=パー
if NOT %2==0 set com=グー
dir jyanken.CHO|find "JYANKEN">tmp.bat
tmp.bat
:CHO
if NOT %2==0 set com=チョキ
:JUDGE
echo あなた=%player% com=%com%
if %player%==%com% echo あいこでしょ!
if %player%==%com% goto STA
set jud=負け
if %player%==グー if %com%==チョキ set jud=勝ち
if %player%==チョキ if %com%==パー set jud=勝ち
if %jud%==負け set lose=★%lose%
if %jud%==勝ち set win=☆%win%
echo あなたの%jud%です!(勝ち数=%win% 負け数=%lose%)
goto STA

165 :jyanken.bat (1/2 差し替え):03/03/07 03:56
乱数の品質に問題があったので修正。(2/2)も☆と★の色が逆だな・・(鬱
でも今のままだと分単位でしかcomの手が変わらないんよね。
もっとまともな乱数がほすぃ(泣)
-------------------
echo off >nul
if NOT "%1"=="" goto %1
echo じゃんけんゲーム
set win=
set lose=
>player.bat
:STA
echo goo か choki か pa と打ち込んで ctrl+z の後 enter を押してください。
copy con jyanken.POI >nul
dir jyanken.POI|find "JYANKEN" >tmp.bat
tmp.bat
:POI
set player=ERR
if %2==3 set player=グー
if %2==5 set player=チョキ
if %2==2 set player=パー
if %player%==ERR echo 入力エラー
if %player%==ERR goto STA
echo %4_ | find "0_ ">jyanken.GOO
echo %4_ | find "3_ ">>jyanken.GOO
echo %4_ | find "8_ ">>jyanken.GOO
echo %4_ | find "1_ ">jyanken.CHO
echo %4_ | find "5_" >>jyanken.CHO
echo %4_ | find "7_" >>jyanken.CHO
dir jyanken.GOO|find "JYANKEN">tmp.bat
tmp.bat

166 :sample.bat (2度目の訂正):03/03/07 13:16
>>165
まだ乱数生成にバグがありました。comがグーを出してこない。
以下のように4行修正してください。( " の位置が間違っている)
----------------------------------
echo %4_ | find "0_" >jyanken.GOO
echo %4_ | find "3_" >>jyanken.GOO
echo %4_ | find "8_" >>jyanken.GOO
echo %4_ | find "1_" >jyanken.CHO

あと、動作には関係ないけど以下の1行は不要
----------------------------------
>player.bat

167 :デフォルトの名無しさん:03/03/07 13:19
cmdでけっこう遊べるな。
w2k入れたから試してみるか

168 :デフォルトの名無しさん:03/03/07 16:47
バッチファイルでテキストファイルの編集とかできますか?

169 :デフォルトの名無しさん:03/03/07 17:03
>>145のCSV→HTML変換も一種のテキストファイルの編集だが。

170 :デフォルトの名無しさん:03/03/07 17:21
バッチファイルでエディタでも作るのか?

171 :デフォルトの名無しさん:03/03/07 18:08
ラインエディタなら作れそうな気がします。

172 :デフォルトの名無しさん:03/03/07 19:16
XMLも編集ができそうだ

173 :デフォルトの名無しさん:03/03/07 20:58
ま、 >>1 はこれでも使っとけ
http://www.vector.co.jp/soft/dos/util/se023753.html

174 :デフォルトの名無しさん:03/03/07 21:08
公開日:95.12.22って、ずいぶん古いな

175 :デフォルトの名無しさん:03/03/08 01:14
このスレに感動した。

176 :デフォルトの名無しさん:03/03/08 11:18
BUとBATCPはバッチプログラマの必需品だろ。

177 :デフォルトの名無しさん:03/03/08 17:02
pifファイルを使わずに全画面表示で実行させる方法ありますか?


178 :bated.bat (1/?):03/03/08 17:04
echo off>nul
if NOT EXIST BATED.RDY goto 1ST
if NOT "%1"=="" goto %1
set LST=0
del *.LIN
cls
echo --ラインエディタ(新規ファイル専用)--
:STA
echo [現在の行数は%LST%です]
echo コマンドと ctrl+z の後 enterを押してください (h ・・・ヘルプ)
copy BATED.RDY+con tmp.bat>nul
tmp.bat CMD
:CMD
set ST=%3
set ED=%4
if %2==h goto HELP
if %2==l goto LIST
if %2==d goto DEL
if %2==e goto EDIT
if %2==s goto SAVE
if %2==q goto END
goto STA
:LIST
if "%ST%"=="" set ST=0
if "%ED%"=="" set ED=%LST%
set Q=%ST%
set A=Q
set RET=LIST2


179 :bated.bat (2/?):03/03/08 17:05
:LIST2
if NOT EXIST %Q%.LIN goto STA
echo [%Q%行目]
type %Q%.LIN
if %Q%==%ED% goto STA
if %Q%==10 goto STA
goto ADD

:EDIT
if %LST%==10 echo これ以上行を増やせません
if %LST%==10 goto STA
if "%ST%"=="" set ST=%LST%
if %ST%==%LST% goto EDIT4
:EDIT2
set I=%LST%
set Q=%LST%
set A=Q
set RET=EDIT3
goto DEC
:EDIT3
if EXIST %Q%.LIN type %Q%.LIN>%I%.LIN
if "%Q%"=="%ST%" goto EDIT4
set I=%Q%
goto DEC


180 :bated.bat (3/?):03/03/08 17:06
:EDIT4
echo ---行内容と ctrl+z の後 enterを押してください
type CON|find/v "">%ST%.LIN
if NOT EXIST %ST%.LIN goto STA
set Q=%LST%
set A=LST
set RET=STA
goto ADD

:DEL
set Q=%LST%
set A=LST
set RET=DEL1
goto DEC
if "%ST%"=="" ST=%LST%
if EXIST %ST%.LIN del %ST%.LIN>nul
set I=%ST%
set Q=%ST%
set A=Q
set RET=DEL2
goto ADD
:DEL2
if %I%==%LST% goto STA
if EXIST %Q%.LIN ren %Q%.LIN %I%.LIN
set I=%Q%
goto ADD


181 :bated.bat (4/?):03/03/08 17:07
:SAVE
if "%3"=="" echo ファイル名が指定されていません
if "%3"=="" goto STA
set Q=0
set A=Q
set RET=SAVE1
if EXIST %3 del %3
:SAVE1
if EXIST %Q%.LIN type %Q%.LIN>>%3
if %Q%==9 goto SAVE2
goto ADD
:SAVE2
echo ファイル[%3]に保存しました
goto STA

:ADD
if "%Q%"=="10" set %A%=0
if "%Q%"=="9" set %A%=10
if "%Q%"=="8" set %A%=9
if "%Q%"=="7" set %A%=8
if "%Q%"=="6" set %A%=7
if "%Q%"=="5" set %A%=6
if "%Q%"=="4" set %A%=5
if "%Q%"=="3" set %A%=4
if "%Q%"=="2" set %A%=3
if "%Q%"=="1" set %A%=2
if "%Q%"=="0" set %A%=1
if "%Q%"=="" set %A%=1
goto %RET%


182 :bated.bat (5/?):03/03/08 17:09
:DEC
if "%Q%"=="" set %A%=0
if "%Q%"=="1" set %A%=0
if "%Q%"=="2" set %A%=1
if "%Q%"=="3" set %A%=2
if "%Q%"=="4" set %A%=3
if "%Q%"=="5" set %A%=4
if "%Q%"=="6" set %A%=5
if "%Q%"=="7" set %A%=6
if "%Q%"=="8" set %A%=7
if "%Q%"=="9" set %A%=8
if "%Q%"=="10" set %A%=9
goto %RET%
:1ST
cls
echo 初回起動なので、必要な準備を行います。
echo "BATED %%1 " と入力して ctrl+z の後 enter を押してください。
echo ("は入力しません。%%1の後のスペース1つを忘れないで下さい。)
copy con BATED.RDY>nul
dir BATED.RDY|find "RDY"|find/v "\">tmp.bat
tmp.bat
:RDY
if %2==9 BATED
echo もう一度正確にお願いします。
goto 1ST


183 :bated.bat (6/6 最終):03/03/08 17:12
:HELP
echo ---コマンド一覧表(#は行番号 0〜9)---
echo l # #    ・・・行表示
echo d #     ・・・行削除
echo e #     ・・・行入力・挿入(#省略時は最終行として追加)
echo s ファイル名・・・ファイル保存
echo q      ・・・終了
goto STA
:END
del *.LIN>nul
del *.tmp>nul
set ST=
set ED=
set LST=
set I=
set Q=
set A=

184 :bated.bat:03/03/08 17:14
ラインエディタ作りますた! 疲れたふー
基本的なコマンドしか使っていないので、dos3にも対応。
新規ファイルの編集と保存だけができます
既存ファイルの読み込みは不可

185 :デフォルトの名無しさん:03/03/08 17:27
HSPユーザーより酷いな。
このスレ。


186 :bated.bat (訂正1度目):03/03/08 17:41
行削除に大バグが・・・
以下の部分を差し替えてくださいn(_ _)n

-----------------------
:DEL
set Q=%LST%
set A=LST
set RET=DEL1
goto DEC
:DEL1
if "%ST%"=="" set ST=%LST%
if EXIST %ST%.LIN del %ST%.LIN>nul
set I=%ST%
set Q=%ST%
set A=Q
set RET=DEL2
goto ADD
:DEL2
if %I%==%LST% goto STA
if EXIST %Q%.LIN ren %Q%.LIN %I%.LIN
set I=%Q%
goto ADD

:SAVE

187 :デフォルトの名無しさん:03/03/08 17:51
>>177
>pifファイルを使わずに全画面表示で実行させる方法ありますか?

\windows\command にある start.exe で可能。
オプションなしで実行すればヘルプが出ます。

188 :187:03/03/08 18:00
>>177
ゴメン、最大化じゃなくて全画面か。
分からん・・・

189 :デフォルトの名無しさん:03/03/08 21:28
@echo off
:: 9x/meでdos/vしか無理
echo [=18h
echo IEでコピペ
pause >nul
exit

190 :デフォルトの名無しさん:03/03/08 22:13
>>189
でけたーヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ
ありがd!

191 :デフォルトの名無しさん:03/03/09 21:52
感動したョ!
何か他にもないの? Win専用

192 :デフォルトの名無しさん:03/03/10 00:07
>>191
こんなの作った。DOS窓をAlt+Enterで全画面にしてからお願い

@echo off
rem 全画面表示がうまくいかないのでコメントアウト
rem ↓どなたかうまく行くようにしてくんなまし
rem echo [=18h
echo [f[;37;44m[K
echo [K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K
echo [K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K[1B[K
echo [10;37f[;34;47m Windows [1;37;44m
echo [1B[6C例外 06 が 0000:00000017 で発生しました。
echo [6C現在のアプリケーションを終了します。
echo [1B[6C* どれかキーを押すと、現在のアプリケーションは強制終了されます。
echo [6C* Ctrl+Alt+Del キーをもう一度押すと、コンピュータが再起動します。
echo [9Cアプリケーションで保存していないデータは全て失われます。
echo [1B[28Cどれかキーを押すと, 続行します.
echo [4B
pause >nul


193 :デフォルトの名無しさん:03/03/10 00:09
しまった… [ を b;[ に置換して

それとWindowsフォルダ内のMsdosdrv.txtにいろいろ載ってるから読んでみ

194 :デフォルトの名無しさん:03/03/10 00:10
[ だった…シパーイ

195 :デフォルトの名無しさん:03/03/10 01:13
echoで > を表示する方法きぼんぬ

196 :デフォルトの名無しさん:03/03/10 01:54
>>195
""で括れば一応表示されるようだが""も表示される


197 :デフォルトの名無しさん:03/03/10 02:38
>>195
cmd.exeならecho ^>。command.comではできないような気がする。

198 :デフォルトの名無しさん:03/03/10 03:46
>>195
確かdos3は>>>で出来たよ
dos5以降ではできない
dos4は不明

199 :デフォルトの名無しさん:03/03/11 02:25
もうそろそろバッチファイルをプログラミング言語として認めていいのではないかと思う。

200 :デフォルトの名無しさん:03/03/11 02:38
Win2k で for とかだいぶ強くなったけど、まだまだ Unix のシェルほどは
プログラム書けんがな。

201 :デフォルトの名無しさん:03/03/11 02:42
>>200 いいや書ける

202 :デフォルトの名無しさん:03/03/11 02:56
>>201
まぁ IF, FOR, GOTO があればフローだけなら根性で書けるかもしれんが。
外部コマンド類は追加しないと標準搭載分だけじゃきつくね?

203 :デフォルトの名無しさん:03/03/11 03:09
> まぁ IF, FOR, GOTO があればフローだけなら根性で書けるかもしれんが。
CALLを忘れてもらっては困る。

> 外部コマンド類は追加しないと標準搭載分だけじゃきつくね?
それはUnixのシェルでも同じだ。

204 :reboot.bat:03/03/11 04:03
>>203
外部コマンド追加!(NEC-PC98xx専用)
@echo エLヘ!>reboot.com
@reboot.com

でもこういうのって無粋な気がするのよねぇ・・

205 :204:03/03/11 04:05
おっと間違えた
203・・×
202・・○

206 :デフォルトの名無しさん:03/03/11 04:42
CALLはオマケみたいなもので、無きゃ無いで同じことは出来ますよ(ぉ!

それより、間接参照もどきが使える点で、かなり救われているよね。
%の変数類は一旦展開されて、それから1行として実行されるので、
VBのByRefとか、C++のバーチャル関数みたいな事も何気に可能。

universal.bat
--------------
%1 %2
%4 %5

main.bat
--------------
if NOT "%1"=="" goto LABEL
echo テスト1
universal.bat echo テスト2 main.bat LABEL
:LABEL
echo テスト3


207 :デフォルトの名無しさん:03/03/11 04:45
>>206
universal.bat
--------------
%1 %2
%4 %5× → %3 %4○

208 :デフォルトの名無しさん:03/03/11 05:17
たしかにfor /f "usebackq"とかはずいぶん強化されてるけど、
この超DQN仕様はなんなんだよ。


209 :block.bat:03/03/11 05:38
ECHO OFF
CLS
ECHO [1C[1C[1B[1B[s
CLS
SET BAK=|SET BX=|SET BY=|SET XF=|SET YF=[1B|TYPE X.TXT
:FOR
SET BX=%BX%%XF%|SET BY=%BY%%YF%|ECHO [u%BAK% [u%BX%%XF%%BY%%YF%o
SET BAK=%BX%%BY%|IF NOT "%BX%" == "" GOTO NXR
SET XF=|ECHO
:NXR
IF NOT "%BX%" == "" GOTO NXL
SET XF=|SET BX=|ECHO
:NXL
IF "%BY%" == "[1B[1B[1B[1B[1B[1B[1B[1B[1B[1B" GOTO OUT
IF "%BX%" == "" GOTO NYD
IF "%BX%" == "" GOTO NYD
IF NOT "%BY%" == "[1B[1B[1B[1B[1B" GOTO NYD
SET YF=[1A|ECHO
:NYD
IF NOT "%BY%" == "[1B[1B[1B[1B[1B[1A[1A[1A[1A[1A" GOTO FOR
SET YF=[1B|SET BY=|ECHO
GOTO FOR
:OUT
GOTO FOR|SET BY=|ECHO [u%BAK%o[u%BAK% [u%BAK%o[u%BAK% [u%BAK%o[u%BAK%

210 :block.bat (コピペ失敗やり直し):03/03/11 05:42
ECHO OFF
CLS
ECHO [1C[1C[1B[1B[s
CLS
SET BAK=|SET BX=|SET BY=|SET XF=|SET YF=[1B|TYPE BLOCK.TXT
:FOR
SET BX=%BX%%XF%|SET BY=%BY%%YF%|ECHO [u%BAK% [u%BX%%XF%%BY%%YF%o
SET BAK=%BX%%BY%|IF NOT "%BX%" == "" GOTO NXR
SET XF=|ECHO
:NXR
IF NOT "%BX%" == "" GOTO NXL
SET XF=|SET BX=|ECHO
:NXL
IF "%BY%" == "[1B[1B[1B[1B[1B[1B[1B[1B[1B[1B" GOTO OUT
IF "%BX%" == "" GOTO NYD
IF "%BX%" == "" GOTO NYD
IF NOT "%BY%" == "[1B[1B[1B[1B[1B" GOTO NYD
SET YF=[1A|ECHO
:NYD
IF NOT "%BY%" == "[1B[1B[1B[1B[1B[1A[1A[1A[1A[1A" GOTO FOR
SET YF=[1B|SET BY=|ECHO
GOTO FOR
:OUT
GOTO FOR|SET BY=|ECHO [u%BAK%o[u%BAK% [u%BAK%o[u%BAK% [u%BAK%o[u%BAK%


211 :コピペ失敗(|||;´Д`):03/03/11 05:46
コントロールコードの、コピペってどうやるのでつか・・・

212 :デフォルトの名無しさん:03/03/11 06:03
>>211
&#x001b;とか汁

213 :191:03/03/11 16:24
>>192-193
Thanx!
WindowsMeには、dosdrv.txtが無いみたいです。
Windows98SEを漁ったらありました。名書。

例外イイ!

214 :デフォルトの名無しさん:03/03/11 22:30
載ってなさそうなものを出してみる。これで合ってるよな
9x/Me PC-AT/PC-98

esc=&#x001b;
esc[0J:カーソル位置から下の部分クリア。0は省略可
esc[1J:カーソル位置から上の部分クリア
esc[2J:全体をクリア。カーソルは左上の位置に移動
esc[0K:カーソルの位置から行の右端までクリア。0省略可
esc[1K:カーソルの位置から行の左端までクリア
esc[2K:行クリア
esc[nM:カーソル位置からn行削除して下の行をつめる。1行だけの場合省略可
esc[nL:カーソル位置からn行削除して下の行をつめる。1行だけの場合省略可
esc D:カーソルが1行下に移動。カーソルが一番下にある場合スクロールアップ
esc E:カーソルが1行下の左に移動。カーソルが一番下にある場合スクロールアップ
esc M:カーソルが1行上に移動。カーソルが一番下にある場合スクロールダウン
esc[6n:カーソル位置のconによる呼び出し
esc[;8mesc"[>5hesc"esc[2Desc[m:カーソル消去(カーソルが左端の場合のみ)
esc[;8mesc"[>5lesc"esc[2Desc[m:カーソル復帰(カーソルが左端の場合のみ)

215 :デフォルトの名無しさん:03/03/11 22:30
それとesc[;nm;を使用する場合、AT/98により出力のされ方が違う。
98の場合、背景色と前景色の同時出力ができない
ATの場合、アンダーラインが使用できない。コートページが932(日本語)だと点滅できない
最大化のesc[=nhは、98では使用できない
最大化するとATの場合、背景色と前景色の同時出力ができない。
98とATの互換性を保つため、[の後に;をつける事をしたほうがいい。esc[;nm;

216 :デフォルトの名無しさん:03/03/11 22:32
× esc[nL:カーソル位置からn行削除して下の行をつめる。1行だけの場合省略可
○ esc[nL:カーソル位置からn行空白行を挿入。1行だけの場合省略可

217 :デフォルトの名無しさん:03/03/11 23:17
&#x0001;〜&#x0006;=┌┐└┘│─
&#x0007;=↓、&#x000b;=四角の中に×
&#x000e;=黒点、&#x000f;=太陽みたいなマーク
&#x0010;=┼、&#x0012;=上下に伸びた矢印(↕)
&#x0014;=濃いアミカケ(▓?)
&#x0015;〜&#x0017;、&#x0019;=┴┬┤├
&#x001a;=薄いアミカケ(░?)
&#x001b;〜&#x001f;=↲↑|→←

218 :デフォルトの名無しさん:03/03/11 23:17
訂正
×░ ○░

219 :デフォルトの名無しさん:03/03/11 23:26
NTもANSI.SYS使ったら同じようなのできるのだろうか?

220 :デフォルトの名無しさん:03/03/11 23:39
CコンパイラだったらCONFIG.NTにANSI.SYSを書き加えればいいらしいが、
BAT/CMDは無理っぽいが。誰か詳しく希望

221 :デフォルトの名無しさん:03/03/11 23:44
テキストファイルに文をついかするのってバッチファイrでできますか?

222 :デフォルトの名無しさん:03/03/11 23:50
>>221
echo ついか>>text.txt

223 :デフォルトの名無しさん:03/03/11 23:50
>>221
type con>ファイル名
最後はCtrl+ZのあとにEnter

224 :デフォルトの名無しさん:03/03/11 23:51
あっ、追加だったか

225 :デフォルトの名無しさん:03/03/12 00:23
>>220
> Cコンパイラだったら
意味不明


226 :221:03/03/12 00:27
>>222
>>223
すげ!簡単そうですね。

次のような事をプログラムを組んでやってたのを、バッチファイルでできるならしたいです。

D&Dされたファイル1のファイル名をファイル2の内容に書いて、
そのファイル2の名前を「ファイル1のファイル名」+「.avs」として出力。

こんなことをしたいのですが、バッチファイルでできそうですか?



227 :デフォルトの名無しさん:03/03/12 00:42
echo %1 > %2
echo %2 > %1.avs

228 :デフォルトの名無しさん:03/03/12 01:17
>>226
> D&Dされたファイル1のファイル名をファイル2の内容に書いて、
> そのファイル2の名前を「ファイル1のファイル名」+「.avs」として出力。
意味がわからん。


229 :221:03/03/12 01:28
>>227
すげー!みじけー!っと思ったけどうまくできなかったです。
>>228

すいません。

バッチファイル A.bat

       ファイル名                内容
ファイル1 aaa.txt
ファイル2 aaa.txt.avs(aaa.avsでもいい)   F:\aaa.txt(フルパス)

ファイル1をA.batにD&Dすると、ファイル2ができる、そんなA.batが作りたいです。

230 :221:03/03/12 01:38
echo %1 >%1.avs

これでできました。

231 :デフォルトの名無しさん:03/03/12 01:40
>>229
とりあえずバッチファイルでできる。
NTならファイル2のファイル名はaaa.avsにできるが
9xはaaa.txt.avsじゃないといけないかもしれない。
D&Dに複数のファイルを指定できるならforやshiftを使わなきゃいけない。
とりあえず単一のファイルでaaa.txt.avsとして出力するバッチファイルは
echo %1 > %1.avs
あとは少し自分で考えてみれ。Windowsのヘルプやコマンド名 /?でヘルプが見れるから。


と書いている間に>>230というレスをされた。シクシク

232 :221:03/03/12 01:41
>>231
ありがとうございます。

233 :デフォルトの名無しさん:03/03/12 03:33
>>230
とりあえずもちっと日本語を勉強汁

234 :デフォルトの名無しさん:03/03/12 04:32
ファイル名の変換バッチを作ってるのですが、
%~t1 は 03/03/10 17:47 というふうになりますが、
これを 03.03.10 とするにはどうすればよいでしょうか?


235 :221:03/03/12 04:42
やっぱ日本語へんかなぁ?
書き直します。

%~t1の内容をバッチファイル内で編集して
03/03/10 17:47

03.03.10
にしたいです。

それをファイル名につけるのですが、
ファイル名のつけ方や新しい変数の設定や代入はわかるのですが、
%~t1の中の前から8文字を取り出し、/を削除する方法はどうすればいいでしょうか?

236 :221:03/03/12 04:43
「やっぱ」は余計でした。

237 :221:03/03/12 04:45
>%~t1の中の前から8文字を取り出し、/を削除する方法はどうすればいいでしょうか?

%~t1の中の前から8文字を取り出し、/を . に置換する方法はどうすればいいでしょうか?

238 :for221.bat (文字列変換):03/03/12 06:39
>>221
『for221.bat 03/03/10』で、『03.03.10』を出力しまつ。
---------
echo off
if "%1"=="CMD" goto %2
for221 CMD STA %1 %2
:STA
set work=%3|set cnt=|set stk=|set ans=|set sep=/|set chg=.
:LOOP1
set a=0|set RET=LOOP2
:LOOP2
echo for221 CMD MATCH _%work% |find "_%stk%%a%" >tmp.bat
echo for221 CMD NEXT >>tmp.bat
tmp.bat
:NEXT
set q=%a%|for221 CMD SFT 0 1 2 3 4 5 6 7 8 9 10
:MATCH
set stk=%stk%%a%|set ans=%ans%%a%|set cnt=%cnt%o
if "%cnt%"=="oo" goto SS|if "%cnt%"=="oooo" goto SS|if "%cnt%"=="oooooo" goto END
goto LOOP2
:SS
set stk=%stk%%sep%|set ans=%ans%%chg%
goto LOOP1
:SFT
shift|if NOT %2==%q% goto SFT|set a=%3|if %2==%q% goto %RET%
:END
echo %ans%

239 :221:03/03/12 07:14
>>238
おおおおおおおおおおお!!
ありがとうございます!
勉強します

240 :デフォルトの名無しさん:03/03/12 11:30
かちゅ〜しゃのkakikomi.txtとcookies.txt
の中身をdeleteするバッチが欲しいんですが。
ソースコードを下さい、お願いします。

241 :デフォルトの名無しさん:03/03/12 12:56
>>240
スレ違い。
ここは「バッチファイル * プ ロ グ ラ ミ ン グ * 質問スレ」です。

242 :デフォルトの名無しさん:03/03/12 14:29
>>221
NT系だろ? だったら%ENV:~0,8%で前から8文字を取り出せる。
ちなみに %ENV:~1,8% だと1文字目から8文字
%ENV:~-8% だと後ろから8文字
さらに %ENV:/=.% で/を.に変換できる

243 :デフォルトの名無しさん:03/03/12 15:28
>>240
中味だけ全部消したいんだったら
copy nul kakikomi.txt
copy nul cookies.txt

244 :デフォルトの名無しさん:03/03/12 16:25
レスありがとうございます。
>243
copy nul パス名\kakikomi.txt
としましたが構文が不正です。となってしまいました。
どこがマズいのでしょうか?

245 :デフォルトの名無しさん:03/03/12 16:54
とりあえずOS書け

246 :240:03/03/12 17:15
>245
winXP HomeEditionです。
パスが長すぎとかフォルダ名に空白がある(my document)とかが問題
なのでしょうか?

247 :デフォルトの名無しさん:03/03/12 17:24
> フォルダ名に空白がある(my document)とかが問題
です。"でくくれ。あと悩んだらcopy /?を実行しろ。

248 :240:03/03/12 17:32
>247 ありがとうございます。


249 :221:03/03/12 18:13
>>242
ありがとうございます。

250 :238:03/03/13 05:03
>>238 >>221
1日越しのバグ、最後の桁が抜ける。『03.03.1』
goto LOOP2 ・・・×
goto LOOP1 ・・・○

251 :デフォルトの名無しさん:03/03/13 17:38
NT系OSからANSI.SYSを起動させる方法
//is-it-true.org/nt/utips/utips181.shtml

command.comのショートカットをどこでもいいから作成する
CONFIG.NTの複製ANSI.NT(ここではANSI.NTとする)を作成する
そのANSI.NTにこう付け加える
dosonly
device=%SystemRoot%\system32\ansi.sys
command.comショートカットのプロパティを開きプログラムタブの詳細設定を開く
CONFIGのファイル名にansi.ntファイルを指定する
実行時のディレクトリと動かしたいコマンドライン(バッチファイル)を指定する
ショートカットを実行すればansi.sysが利用できる

252 :デフォルトの名無しさん:03/03/13 17:52
>>251
バッチファイル名を与えるとそのショートカットを作るバッチきぼん

253 :デフォルトの名無しさん:03/03/13 22:54
>バッチファイル名を与えるとそのショートカットを作るバッチきぼん
バッチでやる仕事か?WSHで出来そうだが

254 :デフォルトの名無しさん:03/03/14 00:26
細かな指示はできない

255 :デフォルトの名無しさん:03/03/14 01:17
自前でバイナリ解析

256 :デフォルトの名無しさん:03/03/15 15:02
win2kのcommand.comからsetコマンドで環境変数取得できないな

257 :デフォルトの名無しさん:03/03/16 01:42


258 :デフォルトの名無しさん:03/03/16 02:32
>>244
こっちのが
echo|find "a">file名

259 :envsize.bat:03/03/16 14:32
>>256
げ、じゃあ、これが使えない・・(command /e:#### の値を決めるのに便利なツール)
----------------------
echo off
if NOT "%1"=="" goto 2
set >envsize.tmp
dir envsize.tmp|find "TMP"|find/v "\">tmp.bat
tmp.bat
:2
echo 現在環境変数を、約%2バイト使用しています.
del envsize.tmp>nul
del tmp.bat>nul

260 :デフォルトの名無しさん:03/03/17 11:49
>>259
command /cでコマンドを実行させると大丈夫みたいです

261 :113:03/03/18 18:36
中断してたやつの続きをなんとなく作り始めてみるテスト

262 :デフォルトの名無しさん:03/03/23 04:50
うい、がんばれー、と応援してみるテスト

263 :デフォルトの名無しさん:03/03/28 12:11
クリップボードにある文字列をあらわす%1みたいなものってありますか?

264 :保守age:03/03/31 23:27
現在しりとりゲーム製作中。 公開できるといいが
(って、ここ質問スレなんだよな・・)

265 :デフォルトの名無しさん:03/04/01 00:34
バッチのしりとりゲームって前あったよね WindowsPowerで見た

266 :264:03/04/01 00:58
>>265
なんですとぉ!?(泣

267 :デフォルトの名無しさん:03/04/01 02:57
>>266
もう公開はしてないようだ。
http://www.google.co.jp/search?hl=ja&q=%82%D0%82%C6%82%E8%82%B5%82%E8%82%C6%82%E8

というわけでしりとり期待してます>264

268 :デフォルトの名無しさん:03/04/01 10:26
5インチFDDの内容をHDDにコピーしてCD-Rに焼きたいので、1枚入れて
キーを押すだけで、連続的にフォルダ作成&コピーできるようにしたいのですが。

BASICとBATのチャンポン書式で書くとこんな感じです。

for i=1001 to 2000
 MD str(i) ' フォルダ作成
 CD str(i) ' フォルダ移動
 xcopy /s f:\*.* h:
 CD ..
 pause
next

BATオンリーでやるにはどうしたらいいのでしょうか?
BUとか使ってもいいです。


269 :デフォルトの名無しさん:03/04/01 13:54
for

270 :for268.bat:03/04/02 00:12
>>268 マジのBATオンリー(BU使わない)なら、これ。(俺ってアホだよな・・)
------------------------------
@echo off
if NOT "%1"=="" goto %1
if NOT EXIST FOR268.1BT goto 1ST
set RET=INIT|for268 MSG INIT 1001まで、激しく準備中...(ひたすら待ってね)>FOR268.CNT
:INIT
if NOT "%i%"=="1001" goto COUNTUP
find "-%i%-"<FOR268.DAT>tmp.bat
tmp.bat for268 JOB2
:JOB2
MD %2
CD %2
xcopy/s f:\*.* h:
CD ..
pause
goto END|set RET=JOB|if NOT "%i%"=="2000" goto COUNTUP
:COUNTUP
type FOR268.1BT>>FOR268.CNT
dir FOR268.CNT|find "CNT"|find /v "\">tmp.bat
tmp.bat
:CNT
goto %RET%|set i=%2|if %2==1 set i=1%3|if %2==2 set i=2%3
:1ST
echo 初回なので半角で"@"を一文字入力し、 ctrl+z の後 enter を押してください。
copy con FOR268.1BT|dir FOR268.1BT|find "1BT"|find /v "\">tmp.bat
tmp.bat
:1BT
if %2==1 for268|if NOT %2==1 for268 MSG 1ST 入力エラーです。もう一度。
:MSG
goto %2|echo %3 %4 %5 %6 %7 %8 %9
:END

271 :for268.DAT:03/04/02 00:14
>>268
データ配列は、こういう風にファイルに書けばOK。
プログラムをギリギリ1レスに詰め込んだので、エラー処理なし。
ちゃんと2000まで登録しないと無くなった時点でエラーが出るよ。
------------------------------
%1 %2 c:\フォルダ名1 -1001-
%1 %2 c:\フォルダ名2 -1002-
%1 %2 c:\フォルダ名3 -1003-
%1 %2 c:\フォルダ名4 -1004-
%1 %2 c:\フォルダ名5 -1005-
%1 %2 c:\フォルダ名6 -1006-


272 :270-271:03/04/02 00:26
>>268
補足、現状iが3000以上になる時はプログラムの修正が必要なので注意です。

273 :270-272:03/04/02 00:35
そしてバグ発生。
1レスに詰め込もうとして、うっかり消しちゃった。

下の位置に :JOB の行を追加してください。n(_ _)n

if NOT "%i%"=="1001" goto COUNTUP
:JOB
find "-%i%-"<FOR268.DAT>tmp.bat


274 :for268.bat (全修正):03/04/02 08:05
ゴメン。str()は数値を文字列にする関数でした。うっかり配列変数と勘違いしてた。
>>270-273は全部捨ててください。
-----------------------------------------------
@echo off
if NOT "%1"=="" goto %1
if NOT EXIST FOR268.1BT goto 1ST
set RET=INIT|for268 MSG INIT 1001まで、激しく準備中...(ひたすら待ってね)>FOR268.CNT
:INIT
if NOT "%i%"=="1001" goto COUNTUP
:JOB
MD %i%
CD %i%
xcopy/s f:\*.* h:
CD ..
pause
goto END|set RET=JOB|if NOT "%i%"=="2000" goto COUNTUP
:COUNTUP
type FOR268.1BT>>FOR268.CNT
dir FOR268.CNT|find "CNT"|find /v "\">tmp.bat
tmp.bat
:CNT
goto %RET%|set i=%2|if %2==1 set i=1%3|if %2==2 set i=2%3
:1ST
echo 初回なので半角で"@"を一文字入力し、 ctrl+z の後 enter を押してください。
copy con FOR268.1BT|dir FOR268.1BT|find "1BT"|find /v "\">tmp.bat
tmp.bat
:1BT
if %2==1 for268|if NOT %2==1 for268 MSG 1ST 入力エラーです。もう一度。
:MSG
goto %2|echo %3 %4 %5 %6 %7 %8 %9
:END

275 :268:03/04/02 08:45
>>270-274
ありがとうございます。うるうる
ずいぶん長いソースになるんですね。
あとでやってみます。
フォルダ名はいちおう連番にしておいて、あとで改名するつもりでした。
なので、配列を使うほうのソースも参考になります。
どうしようかと思ってましたが、質問してよかったです。
DOS時代の大量のFDを塩漬けしたい人には役に立つと思います。


276 :270:03/04/02 08:59
>>275
なんと、実用でしたか。
そういう目的で使うんでしたら、2度目以降の実行では下のように1行を追加すると
再起動でもフォルダ名の連番がリセットされず、しかも高速で始動できます。

if NOT EXIST FOR268.1BT goto 1ST
set RET=INIT|for268 MSG INIT 1001まで、激しく準備中...(ひたすら待ってね)>FOR268.CNT

  ↓↓↓

if NOT EXIST FOR268.1BT goto 1ST
set RET=JOB|goto COUNTUP
set RET=INIT|for268 MSG INIT 1001まで、激しく準備中...(ひたすら待ってね)>FOR268.CNT

277 :デフォルトの名無しさん:03/04/06 23:44
良スレage

278 :デフォルトの名無しさん:03/04/07 14:40
HOGE=$(hogehoge)

をバッチファイルでできますか?

279 :デフォルトの名無しさん:03/04/07 15:31
>>278
perl? 意味がわからないのでなんとも。

280 :デフォルトの名無しさん:03/04/07 15:51
環境変数ならあるが
@SET HOGE=hogehoge
@ECHO 0-%HOGE%
@SET HOGE=
@ECHO 1-%HOGE%
PAUSE

281 :デフォルトの名無しさん:03/04/07 19:11
hogehogeの実行結果(標準出力)を変数HOGEに代入

$HOGE = `hogehoge`;


282 :デフォルトの名無しさん:03/04/07 19:24
クリップボードにある文字列を表示するのはどうやるの?

283 :デフォルトの名無しさん:03/04/07 22:01
>282
その分野はバッチではなくWSHの方かも

284 :デフォルトの名無しさん:03/04/07 22:30
>>281
forでできます。

285 :デフォルトの名無しさん:03/04/08 01:19
最近知った。バッチ使っての印刷。最後のはネットワークプリンタに印刷する方法
notepad /p [textfile]
write /p [textfile]
copy textfile.txt \\machine\printer


286 :デフォルトの名無しさん:03/04/08 01:27
>>285
MS-DOS時代のプリンタなら、こういう事も出来ましたね・・・
でも今のWindows用プリンタではだめかも。(試したことない)
copy textfile.txt prn
type textfile.txt prn

#prnというのは、nul, con, aux等と同じく特殊デバイス名

287 :デフォルトの名無しさん:03/04/08 01:28
× type textfile.txt prn
○ type textfile.txt > prn

288 :デフォルトの名無しさん:03/04/08 01:46
これもなかなかじゃない?DOSスクリプトからSTDERRをSTDOUTと一緒のファイルに捕まえてる。
会社で時々重宝してる。もしかしたらcmd.exe(NTのcommand.com?)だけかも。
route 2>&1 | more
route >hoge.txt 2>&1


289 :285:03/04/08 01:55
一緒の話題にあったのが、レジストリエディタで
HKEY_CURRENT_USER\software\Microsoft\Notepad

fSaveSettings

をDWord型でOn(1にしる!)にしとくとNotepadの印刷時マージンやらヘッダフッタ設定を記憶させておけるってやつ。
簡単にテキストファイルを印刷するには十分かな。

290 :デフォルトの名無しさん:03/04/08 18:37
for /f %i in ('hogehoge') do @set HOGE=%i


291 :デフォルトの名無しさん:03/04/08 19:23
> rem カレントディレクトリの取得
> for /f %I in ('cd') do @echo %I
D:\wrk
> rem カレントドライブを分離
> for /f %I in ("D:\wrk") do @echo %~dI
D:
%~I - すべての引用句 (") を削除して、I を展開します。
%~fI - %I を完全修飾パス名に展開します。
%~dI - %I をドライブ文字だけに展開します。
%~pI - %I をパス名だけに展開します。
%~nI - %I をファイル名だけに展開します。
%~xI - %I をファイル拡張子だけに展開します。
%~sI - 展開されたパスは短い名前だけを含みます。
%~aI - %I をファイルの属性に展開します。
%~tI - %I ファイルの日付/時刻に展開します。
%~zI - %I ファイルのサイズに展開します。
%~$PATH:I - PATH 環境変数に指定されているディレクトリを
検索し、最初に見つかった完全修飾名に %I を
展開します。
環境変数名が定義されていない場合、または検索
してもファイルが見つからなかった場合は、この
修飾子を指定すると空の文字列に展開されます。

修飾子を組み合わせて、複合結果を得ることもできます:
%~dpI - %I をドライブ文字とパスだけに展開します。
%~nxI - %I をファイル名と拡張子だけに展開します。
%~fsI - %I を完全なパスと短い名前だけに展開します。
%~dp$PATH:i - PATH 環境変数に指定されているディレクトリを
検索して %I を探し、最初に見つかったファイル
のドライブ文字とパスだけに展開します。
%~ftzaI - %I を DIR コマンドの出力行のように展開します

292 :デフォルトの名無しさん:03/04/08 19:29
>>288
cmd.exeだけのはず。

293 :デフォルトの名無しさん:03/04/08 20:56
バッチファイルでオブジェクト指向プログラミングは可能でつか?

294 :デフォルトの名無しさん:03/04/08 22:54
>>293
BatchScript.net

295 :デフォルトの名無しさん:03/04/12 23:37
>>294
マジかよ!?

>>290
>for /f %i in ('hogehoge') do @set HOGE=%i

/fというのがcommand.comではできんかった。cmd.exe専用でしょうか?
/f無しでやったら、%HOGE%には'hogehoge'が入りました。

296 :デフォルトの名無しさん:03/04/13 02:31
>>295
そのへんの拡張はすべてcmd.exeのみ。

297 :山崎渉:03/04/17 15:29
(^^)

298 :デフォルトの名無しさん:03/04/18 21:09
>>294
ネタ?

299 :デフォルトの名無しさん:03/04/18 21:10
>>294
(;´Д`)ハァハァ

300 :デフォルトの名無しさん:03/04/19 03:03
つか男ならやっぱ command.com でやりたい

301 :山崎渉:03/04/20 03:05
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

302 :山崎渉:03/04/20 03:42
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

303 :デフォルトの名無しさん:03/04/25 22:25
cmdは95、98、meは使えない、というか無いのでしょうもない

304 :デフォルトの名無しさん:03/04/26 18:33
>>300
さんざん既出だと思うが
ttp://www.command.com/

こんなサイトがあったとは・・・

305 :デフォルトの名無しさん:03/04/27 15:00
>>304 か、カコイイ・・

306 :デフォルトの名無しさん:03/04/27 15:01
http://www.visualstudio.net/

あるかな。

307 :デフォルトの名無しさん:03/04/28 22:21
>>303
bu.exeがあるじゃないか。

308 :デフォルトの名無しさん:03/04/30 22:51
システムスタンプから日付と時間を取得し、その日付と時間を名前としたディレクトリを
自動的に作るバッチを作りたいと思います。

例えばこんな風です。 => \20030501-2300

ご存知の方、その方法を教えてください。

尚、当方のOSはWindows2000です。




309 :デフォルトの名無しさん:03/04/30 23:18
システムスタンプって何?
GUID?

310 :デフォルトの名無しさん:03/05/01 01:09
>309 「タイムスタンプ」の誤りでした。

その後、色々調べた結果、次の様にしたのですが、時間が一桁の場合(例;午前1時など)、時間の頭が
ブランクになってしまいます。
ゼロで埋める方法は無いでしょうか?


例) 午前1時のとき: 2003-0501_ 10005

   ★こうしたい =>  2003-0501_010005

ソース
set yyyymmdd=%date:/=%
set hhmmss=%time::=%
set dirname=%yyyymmdd:~0,4%-%yyyymmdd:~4,8%_%hhmmss:~0,6%

311 :デフォルトの名無しさん:03/05/01 01:40
set hhmmss=%hhmmss:~0,6%
set hhmmss=%hhmmss: =0%

312 :デフォルトの名無しさん:03/05/01 01:41
perで作れるからなー

313 :デフォルトの名無しさん:03/05/01 01:44
パーは釣れるからなー

314 :デフォルトの名無しさん:03/05/03 01:09
DEL [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前
*省略

/A 属性により削除するファイルを選択します。
属性 R 読み取り専用 S システム ファイル
H 隠しファイル A アーカイブ
- その属性以外

の/A パラメータの書式はどのように書くのでしょうか?

DEL /P /Q /A : -S *.*

DEL /P /Q /A : S- *.*
でうまくいかないみたいなので。Windows2000利用しています。

このようなかんじでCache削除をおこないたいのですが。Cookiesファイルとかを。
\Cookiesのindex.datファイルがSystem関係らしくてひとつのぞいて削除したいのですけれども。

rem Delete.bat
cd c:\
cd "C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files"
del /F /Q *.*
cd "C:\Documents and Settings\Administrator\Cookies"
del /F /Q /A : S- *.*
EXIT

315 :デフォルトの名無しさん:03/05/03 01:38
>>314
自己レス

http://pc2.2ch.net/test/read.cgi/pcqa/1051866821/l50
の90-92あたりで別に回答をいただいたのでこちらは終わりにします。ありがとうございました。


316 :デフォルトの名無しさん:03/05/05 17:42
どなたかwin2000でbu.exeを使ってる神は

317 :デフォルトの名無しさん:03/05/06 18:20
rename %1 うっちぃ_%~n1%~x1
バッチファイルに上の文を書いて、
renameうっちぃ_.bat
というファイルネームでsendToフォルダに置いて、リネームしてます。
複数のファイルを同時にリネームできるようにするには
どうすればいいでしょうか?

318 :デフォルトの名無しさん:03/05/07 17:27
ループさせろ

319 :デフォルトの名無しさん:03/05/08 11:39
バッチファイルプログラミング質問スレ はここです。

320 :デフォルトの名無しさん:03/05/08 11:47
DOS互換(Unix互換も目標)とするならいざ知らず、Windows環境なら
WSHを使うほうがいいんじゃないの?

321 :デフォルトの名無しさん:03/05/08 12:18
バッチファイルで「Unix互換も目標」ってのは無茶を通り越して無謀。

322 :デフォルトの名無しさん:03/05/08 16:45
"D:\Program Files\WinRAR\WinRAR" a -s -r -m5 -mc63:128t -md4096 -rr5p cvsroot *
このコマンドラインでcvsroot.rarが出来るのですが、
このcvsrootの部分を
cvsroot[yyyymmdd]という今日の日付にしたいのです。
どのようにすれば出来ますか?

323 :デフォルトの名無しさん:03/05/08 16:56
オナニー友の会
http://homepage3.nifty.com/coco-nut/

324 :322:03/05/08 17:00
具体的には
20%date:~4%で
2003/05/08という文字列が取れました。
ここから/を消したいのですがどうすればいいですか?

325 :322:03/05/08 17:08
すいません解決しました

326 :317:03/05/09 00:33
>>318
どうやってするの?

327 :デフォルトの名無しさん:03/05/09 00:49
:loop
if "%1" == "" goto :end
rename ...
shift
goto :loop
:end


328 :317:03/05/09 01:09
>>327
 (´Д`;) アリガトウゴザイマス…
   ∨)
   ((


329 :317:03/05/09 01:56
複数のファイルに連番をつけるバッチファイルをつくりたいです。

@set ENV=1
:loop
if "%1" == "" goto :end
rename %1 %ENV%%~x1
@set ENV=%ENV%+1
shift
goto :loop
:end

だめなところをおしえてください。

330 :デフォルトの名無しさん:03/05/09 11:01
どうなることを期待していて、結果がどう期待に沿わなかったか、
ちゃんと書かないところかな。

331 :317:03/05/09 11:33
>>330
いくつかのファイルをD&Dする。
拡張子はそのままに上から順番にファイル名を、
1.txt
2.txt
3.txt
としたい。

329のバッチでやると、
1.txt
1+1.txt
1+1+1.txt
となります。

お助けを〜。

332 :デフォルトの名無しさん:03/05/09 11:43
set /?
ちゃんと読んだ? すぐ見つかると思うんだが。

333 :317:03/05/09 12:44
>>332
たぶん文字列として扱われてるので1+1+1みたいになるのだと思います。
数字として足し算をしたいのです。
それを変数に入れて、ファイル名にしたいのです。


334 :デフォルトの名無しさん:03/05/09 12:51
うん、だからそのやり方はset /?ですぐ見つかるだろうと言ってるわけだが。

335 :317:03/05/09 13:10
>>334
すべて文字列と書いてあります。
数をいれたいのです。

336 :デフォルトの名無しさん:03/05/09 21:20
>>335
NT系じゃないヒト?かな?
for で回したらイカンのかな?

337 :336:03/05/09 21:26
D&Dするのか、、、前言撤回。

338 :317:03/05/09 21:34
>>336
WIN2000です。

339 :317:03/05/09 22:14
rename %1 1%~x1
shift
rename %1 2%~x1
shift
rename %1 3%~x1
shift
rename %1 4%~x1
shift
rename %1 5%~x1
shift
rename %1 6%~x1
shift
rename %1 7%~x1
shift
rename %1 8%~x1
shift
rename %1 9%~x1
shift

こうしたらうまくいきました。
ありがとうございました。

340 :デフォルトの名無しさん:03/05/11 08:35
>>317
set /a

cmd.exeだよな?

341 :317:03/05/12 02:10
>>340
できたーーーーー!
ありがとうございます。m(_ _)m



342 :330,332,334,340:03/05/12 07:33
だからset /?をちゃんと読めと再三…。

343 :デフォルトの名無しさん:03/05/13 23:18
で、使ってるOSはみんなXPとかなのか

344 :デフォルトの名無しさん:03/05/14 05:00
c:\program files\AAA\AAA.exe

d:\program files\BBB\BBB.exe
を同時に起動するにはどうすればよろしいの?

345 :デフォルトの名無しさん:03/05/14 11:04
完全に同時は無理だけど、startで並行して動作はさせられる。
CUIプログラムを同一ウィンドウで、はダメだが。

346 :デフォルトの名無しさん:03/05/15 02:26
echoで空行(改行のみの行)を出力する方法ってないでしょうか?

いくつかのバッチファイルを連続して呼び出している
バッチファイルがあります。呼び出される側でログとして
echoで色々と出力しているのですが、ログをパッと
見た時に処理の分け目がわかりにくくて・・・・

NT4.0で使ってます。



347 :デフォルトの名無しさん:03/05/15 07:53
echo=
echo.
などで空行が出ます。

348 :デフォルトの名無しさん:03/05/15 09:23
コマンドの実行結果をファイルへリダイレクトしつつ画面にも表示する事って可能でしょうか?


349 :デフォルトの名無しさん:03/05/15 09:39
>>348
UNIX-like tools
http://www.vector.co.jp/soft/win95/util/se010511.html
の tee.exe を使えばできます。

350 :346:03/05/15 12:15
>>347
Thanks!
ただ、echo=だと
ECHO は <ON> です。
とかいわれてしまいました。
echo.
なら、無問題です。

351 :347:03/05/15 12:17
>>350
スマソです。
WinXPのcmd.exeではうまくいってたので。

352 :デフォルトの名無しさん:03/05/15 15:02
echo. は昔(command.com)から使われてたテクニックだが、
cmd.exeではecho=も使えるとは知らなかった。

そもそも質問するときに環境を書かない>>346が悪い。

353 :デフォルトの名無しさん:03/05/15 23:46
漏れいつもECHO/にしてるんだが

354 :デフォルトの名無しさん:03/05/16 00:35
>>353
同じくecho\でもいけた。
cmd.exeでしか試してないが。

355 :デフォルトの名無しさん:03/05/16 00:37
+とか"でもいいようだ。要するに(cmd.exeは)ファイル名に使えない文字なら
区切りとみなすっぽい。


356 :デフォルトの名無しさん:03/05/17 00:21
>>352

> NT4.0で使ってます。

思いっきり書いてあるが、、、、


357 :デフォルトの名無しさん:03/05/17 09:46
>>356, >>346
正直、スマンかった。

358 :デフォルトの名無しさん:03/05/23 23:49
Htaと組み合わせたい・・・>>バッチ
できんかのぅ?

359 :デフォルトの名無しさん:03/05/26 22:48
HTMLアプリケーションのことか?

360 :デフォルトの名無しさん:03/05/27 01:29
>>358
どういうことをしたいの?

361 :山崎渉:03/05/28 13:01
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

362 :デフォルトの名無しさん:03/06/01 15:01
Σ(゚д゚lll)ガーン
もう6月じゃん

363 :デフォルトの名無しさん:03/06/01 22:27
HTA検索してみた・・・。
JavaScriptからShellでよびだしたらどう?

364 :デフォルトの名無しさん:03/06/02 01:02
<script language="JScript"><!--
function a(){
hoge=new ActiveXObject("WScript.Shell");
hoge.run("command.com /K echo HOGE");
}onLoad=document.write("<input type=button value=COMMAND起動 onclick=a()>");
//--></script>

こういうことをお望み?
当然だがJScriptだからネスケでは使えない

365 :デフォルトの名無しさん:03/06/02 01:10
シニスメテ.bat

366 :デフォルトの名無しさん:03/06/02 17:00
echo cd C:\Program Files\Windows Media Components\Encoder >f:\wmv9.bat
echo start /low cscript.exe WMCmd.vbs -input %1 -output %~d1%~p1%~n1.wmv -v_mode 2 -v_quality 75 -pixelratio 10 11 -v_preproc 16 -v_performance 100 -a_mode 2 -a_setting Q90_48_2 >f:\wmv9.bat

上の段の
「cd C:\Program Files\Windows Media Components\Encoder」
の部分がwmv9.batに書き込まれないのですが、なぜですか?

367 :デフォルトの名無しさん:03/06/02 22:04
解決しました。
>を>>にしたらいいだけでした。

368 :デフォルトの名無しさん:03/06/07 08:46
echo ホシュ

369 :t-akiyama:03/06/15 09:43
携帯ゲーム機"プレイステーションポータブル(PSP)

 このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。

370 :デフォルトの名無しさん:03/06/23 09:23
だれかNT4.0使ってる人はいない?

371 :デフォルトの名無しさん:03/06/23 22:56
|∀・)

372 :デフォルトの名無しさん:03/06/24 23:21
バッチファイルで入力した文字をテキストのある部分に書き込むことって出来ますか?WIN2K
イメージで例えると

バッチ起動
IPを入力して下さい
>*.*.*.*
ホスト名を入力して下さい
>hosuto
hostsファイルへ書き出し

みたいな感じで
やっぱ別途ソフト使わないと無理ですか?



373 :デフォルトの名無しさん:03/06/24 23:59
>>372
> テキストのある部分に
ある部分によって難易度がかなり変わると思うが出来そうな気がする。

374 :デフォルトの名無しさん:03/06/25 20:38
>373
まぁ極単純にいうと

ファイルの中身:

IP = ipadoresu
HOST = hosuto

で、ipadoresuとhosutoにバッチから入力するみたいな

あとwin2kって書いたけどWIN98素DOSの間違いです




375 :デフォルトの名無しさん:03/06/25 22:32
WIN XP PROのコマンドプロンプトなんだけど、リダイレクトに1とかの数字が付くのはどうして?

例えば、
------------------------------------
type 123.txt > abc.txt
type 456.txt >> abc.txt
type 789.txt >> abc.txt
------------------------------------

みたいなバッチをかいたとき、実行画面を見たら、

C:\>type 123.txt 1> abc.txt
C:\>type 456.txt 1>> abc.txt
C:\>type 789.txt 1>> abc.txt
^^^^

みたいな感じになるんだよ。

376 :デフォルトの名無しさん:03/06/25 23:01
>>375
1> = 標準出力
2> = 標準エラー出力
ttp://homepage2.nifty.com/winfaq/c/hints.html#548

377 :デフォルトの名無しさん:03/06/26 11:56
>>374
cmd.exeならset /pでできるが、command.comじゃどうだろなぁ。

378 :名無しさん@お腹いっぱい。:03/06/27 13:09
>374
環境が許すならWSH(VBS等)とかでやった方が早いかも

お前ら、wsh使ってますか? Part2
http://pc2.2ch.net/test/read.cgi/win/1022248379/l50


379 :デフォルトの名無しさん:03/06/27 13:14
>>374
find /v で該当行を削除してから >> で最終行として足す事は可能です。
但し、行位置を変えずに編集するのは非常に難しいです。
 1 IP =
 2 HOST =
というふうに固定の行番号が入っているなら後からsortコマンドで誤魔化せるけど。

380 :375:03/06/27 19:53
376

そうだったのか。産休。でも、見た目に気になるから、表示しないようにできないのかな。

381 :デフォルトの名無しさん:03/06/27 20:15
標準入出力が扱えないって本当?
だからシェルスクリプトと違ってCGIスクリプトを書くのに使えないって聞いたんだけど。

382 :デフォルトの名無しさん:03/06/27 20:52
command.com /c hoge.bat < input > output
ならできんじゃないか?

383 :デフォルトの名無しさん:03/06/27 21:43
>>381
> 標準入出力が扱えないって本当?
うそ。

> だからシェルスクリプトと違ってCGIスクリプトを書くのに使えないって聞いたんだけど。
使える。


384 :デフォルトの名無しさん:03/06/27 23:08
>>382-383
サンクス

だまされたのか(´Д`;)

385 :デフォルトの名無しさん:03/07/04 15:51
下の Shell Script と同じことを Windows でやりたいんだけど、
誰か windows の batch に翻訳して。

------------------------------------------
if [ $# = 2 ]; then
  ARGS="hoge"
elif [ $# = 3 ]; then
  ARGS="tako"
else
  echo "FAILURE"
  exit 1
fi

RESULT=`XXX $ARGS`
if [ x"$RESULT" != "x" ]; then
  echo "FAILURE"
  exit 1
fi
exit 0
------------------------------------------

386 :デフォルトの名無しさん:03/07/04 15:53
>>385
Shell Scriptを知らないから、
まずやりたいことを日本語に翻訳して。

387 :デフォルトの名無しさん:03/07/04 16:07
>>386
翻訳してくれるのであれば、ありがとう。

---------------------------------------------
引数の数が 2 つなら ARGS 変数に hoge を代入
引数の数が 3 つなら ARGS 変数の tako を代入
それ以外なら "FAILURE" と出力して異常終了

XXX コマンドに ARGS 変数の内容を引数として渡して実行し、その結果を RESULT 変数に代入。
実行した結果が "" なら正常終了、"" 以外なら "FAILURE" と出力して異常終了
---------------------------------------------

こんな感じ

388 :デフォルトの名無しさん:03/07/04 17:24
>>385 ズルしていいなら
--------------------
@if (0==1) rem
@echo off
if exist %0.bat cscript.exe //nologo //e:jscript %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
if exist %0 cscript.exe //nologo //e:jscript %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
goto end
@else

var WshShell = new ActiveXObject("WScript.Shell");
var oArgs = WScript.Arguments;
var ARGS;
if (oArgs.length == 2)
    ARGS = "hoge";
else if (oArgs.length == 3)
    ARGS = "tako";
else
    WScript.StdOut.WriteLine("FAILURE");

var oExec = WshShell.Exec("XXX.exe " + ARGS);
var RESULT = oExec.StdOut.ReadAll();
if (RESULT == "") {
    WScript.StdOut.WriteLine("FAILURE");
    WScript.Quit(1);
}
WScript.Quit(0);

@end/*
:end
:*/
--------------------

389 :388:03/07/04 17:39
訂正

else
    WScript.StdOut.WriteLine("FAILURE");

else {
    WScript.StdOut.WriteLine("FAILURE");
    WScript.Quit(1);
}

390 :デフォルトの名無しさん:03/07/04 17:46
>>388
さんくす。
試してみます。

391 :388:03/07/04 17:51
また訂正

if (RESULT == "") {

if (RESULT != "") {

392 :デフォルトの名無しさん:03/07/05 00:36
>>385
cygwin入れたほうが速くねえ?

393 :デフォルトの名無しさん:03/07/05 02:10
あるいはmsys

>>388
exit status返せる?

394 :388:03/07/05 05:49
バッチにすると返せないから
@else の次の行から @end/* の前の行まの内容を
.js ファイルとして cscript //nologo ***.js のように
起動すべきかな。

395 :デフォルトの名無しさん:03/07/06 23:11
「キーの入力待ち」をするDOSアプリをバッチで
自動的に起動→終了したいのですが、
方法はありますでしょうか?

起動後にEnterを押さないと処理が始まらなくて、
終了にも任意のキーを押す必要があるのですが

396 :デフォルトの名無しさん:03/07/07 20:41
pause

397 :デフォルトの名無しさん:03/07/07 22:16
>>395
入力すべきキー内容をファイル(例えばbar)に保存しておいて
foo.exe<bar
のようにしてみては?

398 :デフォルトの名無しさん:03/07/09 03:30
ageてもいいかしら

399 :デフォルトの名無しさん:03/07/09 03:34
>>397
あ。答えてくれてらっしゃる。

超出来ました。最高です!バッチリです!ヒャホーイ!

400 :デフォルトの名無しさん:03/07/09 03:46
echo -n '400get'

401 :山崎 渉:03/07/15 10:01

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

402 :絢安允安安維:03/07/20 01:16
絢安允安安維

403 :デフォルトの名無しさん:03/07/21 15:49
テキスト内の特定の文字列だけ書き換えさせたいのですが、
追記くらいしか検索にヒットしないのでマジ困ってます。

例を教えていただけませんでしょうか?おながいします。

404 :デフォルトの名無しさん:03/07/24 14:54
win2kでexeを一度に大量起動するバッチファイルを作ったんだが
起動したアプリを終了しないと次のアプリが起動せず無意味
なんとかならんでしょうか

中身はこんな感じ
"C:\Program Files\hoge\hoge.exe"
"C:\Program Files\hage\hage.exe"
"C:\Program Files\mage\mage.exe"



405 :デフォルトの名無しさん:03/07/24 17:14
>>404
start "C:\Program Files\hoge\hoge.exe"


406 :デフォルトの名無しさん:03/07/25 03:48
>>405
2kでcmd.exe使用の場合
プログラムを""で囲う時は
start "" "C:\Program Files\hoge\hoge.exe"
とするひと

""で囲まない時やcommand.com使用時は例外


407 :404:03/07/25 15:11
>>406
start "" "C:\Program Files\hoge\hoge.exe"
で出来ました、有難うございます。

408 :山崎 渉:03/08/02 02:23
(^^)

409 :山崎 渉:03/08/15 16:39
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

410 :デフォルトの名無しさん:03/08/20 13:57
テキストファイルに書かれている文字列を
変数に代入する方法ってありますか?
ちなみにテキストファイルには一行しか書かないものとして。
OSはW2Kです。

411 :デフォルトの名無しさん:03/08/20 17:29
set /p var= < file

412 :デフォルトの名無しさん:03/08/20 22:52
>> 411
ありがとうございます。

107 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)