_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


バッチファイルプログラミング質問スレ.
http://pc.2ch.net/test/read.cgi/tech/1040614686/l50
http://pc3.2ch.net/test/read.cgi/tech/1040614686/l50
http://pc2.2ch.net/test/read.cgi/tech/1040614686/l50
http://pc5.2ch.net/test/read.cgi/tech/1040614686/l50
2ちゃんねる *スマホ版* *掲示板に戻る* 全部 1- 最新50
* このスレッドは過去ログ倉庫に格納されています.
バッチファイルプログラミング質問スレ.

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

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

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

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

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

  6 :デフォルトの名無しさん:2002/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 :デフォルトの名無しさん:2002/12/25 06:35
  良スレ期待あげ.

  8 :デフォルトの名無しさん:2002/12/25 08:22
  うざいから結論だけ書いて沈めよう.
  使用できる命令:
  DOS内部コマンドとほぼすべての外部コマンド.
  使用できる制御構造:
  IF FOR GOTO
  主にバッチファイル専用コマンド:
  BATKEY PAUSE CHOICE
  変数:
  使えるがその用途は限りなく少ない. 環境変数は使える.
  レベル:
  BASIC以下. プログラミングと呼ぶのも憚られる.
  楽しみ方:
  他のプログラミング言語と違い大量の制限があるためその制限を超えた何かを作ること.

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

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

  11 :デフォルトの名無しさん:2002/12/25 11:34
  >>8
  pl2batのようなことやると.
  バッチファイル内にperlのスクリプトかけるから.
  なんでもできそうやな.
  近視眼だとそれだけで終わっちゃうけど.

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

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

  14 :デフォルトの名無しさん:2002/12/25 12:14

  15 :11:2002/12/25 12:15
  追記.
  それならbatではなく実行ファイルにしておけたらいいけど,
  できるならばソースはいつでも手が入れられたり覗けるようにするほうが.
  自分が居なくなったりしても混乱が減らせるでそ.
  (退職などで)ツール作って残してくれてる人もいるが,
  環境が変わった際に変更できないといちいち車輪を発明しなおさないと.
  いけないのが面倒で・・・.
  (あと, ジョブセキュリティにするような輩とかもいるし・・・)
  この形で運用できるのは結構便利だったりする.

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

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

  18 :デフォルトの名無しさん:2002/12/25 18:32
  >>13
  そう言うときのバッチファイルか!
  @echo off
  perl -f xxx %1 %2

  19 :135:2002/12/26 13:13
  >>16
  ごめん. sedとごっちゃになってた・・・.

  20 :デフォルトの名無しさん:2002/12/26 13:16
  bat2com=>com2exe
  [下矢印]
  com2txt

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

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

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

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

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

  26 :25:2002/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 :デフォルトの名無しさん:2002/12/28 10:12
  >>26
  間違ってるというかなんじゃそら.

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

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

  30 :デフォルトの名無しさん:2003/01/09 03:34

  31 :デフォルトの名無しさん:2003/01/09 04:17

  32 :デフォルトの名無しさん:2003/01/09 13:21

  33 :デフォルトの名無しさん:2003/01/09 13:52

  34 :デフォルトの名無しさん:2003/01/09 14:45

  35 :デフォルトの名無しさん:2003/01/09 17:38

  36 :デフォルトの名無しさん:2003/01/10 08:29

  37 :デフォルトの名無しさん:2003/01/10 09:50

  38 :デフォルトの名無しさん:2003/01/10 10:31

  39 :デフォルトの名無しさん:2003/01/10 11:02

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

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

  42 :デフォルトの名無しさん:2003/01/10 13:07

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

  44 :デフォルトの名無しさん:2003/01/10 16:56

  45 :デフォルトの名無しさん:2003/01/10 23:18

  46 :デフォルトの名無しさん:2003/01/10 23:24

  47 :デフォルトの名無しさん:2003/01/11 00:41

  48 :デフォルトの名無しさん:2003/01/11 00:49

  49 :デフォルトの名無しさん:2003/01/11 10:11

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

  51 :デフォルトの名無しさん:2003/01/11 10:44

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

  53 :デフォルトの名無しさん:2003/01/11 11:16

  54 :デフォルトの名無しさん:2003/01/11 12:19

  55 :デフォルトの名無しさん:2003/01/11 12:53

  56 :デフォルトの名無しさん:2003/01/11 15:41

  57 :デフォルトの名無しさん:2003/01/11 15:46

  58 :デフォルトの名無しさん:2003/01/12 02:37

  59 :デフォルトの名無しさん:2003/01/12 02:42

  60 :デフォルトの名無しさん:2003/01/12 10:10

  61 :デフォルトの名無しさん:2003/01/12 10:13

  62 :デフォルトの名無しさん:2003/01/12 20:55

  63 :デフォルトの名無しさん:2003/01/12 20:58

  64 :デフォルトの名無しさん:2003/01/12 21:07

  65 : - :2003/01/13 18:44

  66 : - :2003/01/16 03:20

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

  68 : - :2003/01/23 20:13

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

  70 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/01/28 14:52
  外部コマンド.
  ATTRIB
  CHOICE
  FORMAT
  MOVE
  COMMAND
  糞多いので省略.

  72 :デフォルトの名無しさん:2003/01/28 14:58
  Cとバッチファイルの大きな違い.
  コンパイル不要.
  特別なソフト不要.
  数値が扱えない.
  低速.

  73 :デフォルトの名無しさん:2003/01/28 15:04
  バッチコマンドを使えると得する事.
  拡張子などのリネーム作業を大幅に短縮できる.
  ネットワークとかシステムの細かな設定が可能.
  いわゆるCUIでの操作なのでコマンドを覚えるのが大変(らしい)

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

  75 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/01/30 14:01
  VERIFYも忘れてたな>70

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

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

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

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

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

  84 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/02/04 17:57
  >>82は>>81への回答?
  いつごろからか知ってる?

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

  87 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/02/04 22:54
  echo レジストリを保存&復元します.
  echo/
  echo ???.bat [フォルダ名]
  echo/
  echo [フォルダ名] 保存したいフォルダの名前を指定します.
  :exit
  set p=
  exit
  レジストリを復元したりするツールですが.

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

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

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

  93 :デフォルトの名無しさん:2003/02/05 12:09
  >>8の内容.
  >主にバッチファイル専用コマンド:
  >BATKEY PAUSE CHOICE
  あほ.

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

  95 :デフォルトの名無しさん:2003/02/06 11:28
  >>94
  > 持ってるOSは何.
  メインはLinux
  > プログラミング(?暦はどのくらい.
  20年くらい.
  > エスケープシーケンスは使った事があるか.
  ある. 今でもbashのプロンプトに使ったりするし.
  >>92は「DOSなんて(もう)持ってない」ってこと. すまん.

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

  97 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/02/06 12:48
  >>97
  何のbuiltinか知らんが, FGはあってもBGはないのか?

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

  100 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/02/13 21:18
  ここには他に二人いるのか?

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

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

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

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

  106 :デフォルトの名無しさん:2003/02/14 22:12
  はにゃ〜ん.
  3人いるらしぃ.

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

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

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

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

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

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

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

  114 :デフォルトの名無しさん:2003/02/17 15:25
  >>113
  神!!
  BATKEYとかあればジャンケンゲームとかくらいなら作れそうな気がするが, こ.
  れだけやる気をそそられない課題も珍しい.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  130 :set /?より:2003/02/27 10:44
  SET コマンドには, 2 つの新しいスイッチが追加されています:
  SET /A 式.
  SET /P 変数=[プロンプト文字列]
  /A スイッチは, 等号の右側の文字列が, 評価すべき数式であることを.
  指定します. 式の評価はごく単純で, 次の操作がサポートされます.
  操作は, 優先順位の高い順に示されています:
  () - グループ化.
  * / % - 算術演算子.
  + - - 算術演算子.
  << >> - 論理シフト.
  & - ビット演算子 AND
  ^ - ビット演算子排他的 OR
  | - ビット演算子 OR
  = *= /= %= += -= - 代入.
  &= ^= |= <<= >>=
  , - 式の区切り記号.

  131 :set /?より:2003/02/27 10:45
  環境変数の置換は, 次のように拡張されます:
  %PATH:文字列1=文字列2%
  は, PATH 環境変数を展開し, その結果に含まれるすべての "文字列1" を.
  "文字列2" に置き換えます. "文字列2" に空の文字列を指定すると, 展開.
  された出力からすべての "文字列1" を削除することができます. "文字列1"
  をアスタリスクで始め, 展開された出力の先頭から, 文字列1 の残りの部分.
  が最初に現れるまでのすべてを一致させることもできます.

  132 :set /?より:2003/02/27 10:45
  また, 展開の副文字列を指定することもできます.
  %PATH:~10, 5%
  は, PATH 環境変数を展開し, 展開結果の 11 番目 (オフセット 10) の文字.
  から始まる 5 文字だけを使います. 長さが指定されなかった場合は, 変数の.
  値の残りの長さを既定値とします. オフセットまたは長さのどちらかが負の値.
  の場合, 環境変数の値の長さに指定されたオフセットまたは長さを足してその.
  数を使います.
  %PATH:~-10%
  は, パス変数の最後の10 文字が展開されます.
  %PATH:~0, -2%
  は最後の 2 文字以外のすべてが展開されます.

  133 :set /?より:2003/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 /?より:2003/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 /?より:2003/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 /?より:2003/02/27 10:52
  コマンド拡張機能が有効な場合, SET によって表示される変数の一覧には.
  現れないいくつかの動的な環境変数があります. これらの変数の値は, 変数の.
  値が展開されるときに動的に計算されます. ユーザーがこれらの名前の変数を.
  明示的に定義する場合, その定義は下記の動的な定義を無効にします.
  %CD% - 現在のディレクトリ文字列に展開します.
  %DATE% - DATE コマンドと同じフォーマットで現在の日付に展開します.
  %TIME% - TIME コマンドと同じフォーマットで現在の時刻に展開します.
  %RANDOM% - 0 から 32767 の間の任意の 10 進数に展開します.
  %ERRORLEVEL% - 現在の ERRORLEVEL の値に展開します.
  %CMDEXTVERSION% - 現在のコマンド プロセッサ拡張機能のバージョン番号に.
  展開します.
  %CMDCMDLINE% - コマンド プロセッサを起動したオリジナル コマンドライン.
  に展開します.

  137 :for /?より:2003/02/27 11:04
  FOR /D %変数 IN (セット) DO コマンド [コマンドパラメータ]
  セットがワイルドカードを含む場合は, ファイル名ではなくディレクトリ名.
  の一致を指定します.
  FOR /R [[ドライブ:]パス] %変数 IN (セット) DO コマンド [コマンドパラメータ]
  [ドライブ:]パスから始めて, ツリーの各ディレクトリで FOR 文を実行し.
  ます. /R の後にディレクトリが指定されていない場合は, 現在の.
  ディレクトリが使用されます. セットが単一のピリオド (.) である場合は,
  ディレクトリ ツリーの列挙だけを行います.

  138 :for /?より:2003/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 /?より:2003/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 /?より:2003/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 :デフォルトの名無しさん:2003/02/27 11:08
  >>130-140
  バッチファイルプログラミング Win2K(NT?)以上ならかなりいけます.

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

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

  144 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/02/27 12:37
  CSV->HTML変換.
  @echo off
  echo ^<table^>
  FOR /F "eol=; tokens=1, 2, 3 delims=, " %%i in (test.csv) doecho ^<tr^>
  ^<td^>%%i^</td^> ^<td^>%%j^</td^>^<td^>%%k^</td^> ^</tr^>
  echo ^</table^>
  test.csvの中身.
  商品, 値段, 個数.
  りんご, 80, 10
  みかん, 90, 20
  ばなな, 100, 30

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

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

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

  149 :ジャンケンゲーム:2003/03/01 10:30
  [*] cmd /V:ONでコマンドプロンプトを起動すること.
  @echo off&echo ジャンケンゲーム&set win=0&set lose=0&set player=&setcpu=&set msg=1
  set name1=グー&set name2=チョキ&set name3=パー&set
  msg_name1=ジャンケン?&setmsg_name2=あいこで?&set err_msg=入力エラー.
  set t11=draw&set t12=win&set t13=lose&set t21=lose&sett22=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&setmsg=1&goto
:start
  :lose
  echo 負け プレイヤー:!name%player%! CPU:!name%cpu%!&set /a lose+=1&setmsg=1&goto
  :start
  :draw
  echo あいこ プレイヤー:!name%player%! CPU:!name%cpu%!&set msg=2&goto :start

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

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

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

  153 :デフォルトの名無しさん:2003/03/03 12:12
  :1
  @echo off
  echo
  echo
  echo
  goto 1

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

  155 :calc.bat (1/6):2003/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):2003/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):2003/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):2003/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):2003/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):2003/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:2003/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 :デフォルトの名無しさん:2003/03/07 02:19
  >>149
  cmd.exeってすごいな.
  むむ, 対抗して, dos3でも動くようにできないものか・・.

  163 :jyanken.bat (1/2):2003/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):2003/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 差し替え):2003/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度目の訂正):2003/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 :デフォルトの名無しさん:2003/03/07 13:19
  cmdでけっこう遊べるな.
  w2k入れたから試してみるか.

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

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

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

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

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

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

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

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

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

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

  178 :bated.bat (1/?):2003/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/?):2003/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/?):2003/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/?):2003/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/?):2003/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 最終):2003/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:2003/03/08 17:14
  ラインエディタ作りますた! 疲れたふー.
  基本的なコマンドしか使っていないので, dos3にも対応.
  新規ファイルの編集と保存だけができます.
  既存ファイルの読み込みは不可.

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

  186 :bated.bat (訂正1度目):2003/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 :デフォルトの名無しさん:2003/03/08 17:51
  >>177
  >pifファイルを使わずに全画面表示で実行させる方法ありますか?
  \windows\command にある start.exe で可能.
  オプションなしで実行すればヘルプが出ます.

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

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

  190 :デフォルトの名無しさん:2003/03/08 22:13
  >>189
  でけたー.
  ありがトン!

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

  192 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/03/10 00:09
  しまった・・・ [ を b;[ に置換して.
  それとWindowsフォルダ内のMsdosdrv.txtにいろいろ載ってるから読んでみ.

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

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

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

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

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

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

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

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

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

  203 :デフォルトの名無しさん:2003/03/11 03:09
  > まぁ IF, FOR, GOTO があればフローだけなら根性で書けるかもしれんが.
  CALLを忘れてもらっては困る.
  > 外部コマンド類は追加しないと標準搭載分だけじゃきつくね?
  それはUnixのシェルでも同じだ.

  204 :reboot.bat:2003/03/11 04:03
  >>203
  外部コマンド追加!(NEC-PC98xx専用)
  @echo エLヘ!>reboot.com
  @reboot.com
  でもこういうのって無粋な気がするのよねぇ・・.

  205 :204:2003/03/11 04:05
  おっと間違えた.
  203・・x
  202・・o

  206 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/03/11 04:45
  >>206
  universal.bat
  --------------
  %1 %2
  %4 %5 x -> %3 %4 o

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

  209 :block.bat:2003/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" GOTOOUT
  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" GOTOFOR
  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 (コピペ失敗やり直し):2003/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" GOTOOUT
  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" GOTOFOR
  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 :コピペ失敗.:2003/03/11 05:46
  コントロールコードの, コピペってどうやるのでつか・・・.

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

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

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

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

  217 :デフォルトの名無しさん:2003/03/11 23:17
  &#x0001;〜&#x0006;=++++|--
  &#x0007;=[下矢印], &#x000b;=四角の中に, x
  &#x000e;=黒点, &#x000f;=太陽みたいなマーク.
  &#x0010;=+, &#x0012;=上下に伸びた矢印(&#8597;)
  &#x0014;=濃いアミカケ(&#9619;?)
  &#x0015;〜&#x0017;, &#x0019;=++++
  &#x001a;=薄いアミカケ(&#9617;?)
  &#x001b;〜&#x001f;=&#8626;[上矢印]|-><-

  218 :デフォルトの名無しさん:2003/03/11 23:17
  訂正.
  x &#9617; o &#9617;

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

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

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

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

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

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

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

  226 :221:2003/03/12 00:27
  >>222
  >>223
  すげ!簡単そうですね.
  次のような事をプログラムを組んでやってたのを, バッチファイルでできるならしたいです.
  D&Dされたファイル1のファイル名をファイル2の内容に書いて,
  そのファイル2の名前を「ファイル1のファイル名」+「.avs」として出力.
  こんなことをしたいのですが, バッチファイルでできそうですか?

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

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

  229 :221:2003/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:2003/03/12 01:38
  echo %1 >%1.avs
  これでできました.

  231 :デフォルトの名無しさん:2003/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:2003/03/12 01:41
  >>231
  ありがとうございます.

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

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

  235 :221:2003/03/12 04:42
  やっぱ日本語へんかなぁ?
  書き直します.
  %~t1の内容をバッチファイル内で編集して.
  03/03/10 17:47
  を.
  03.03.10
  にしたいです.
  それをファイル名につけるのですが,
  ファイル名のつけ方や新しい変数の設定や代入はわかるのですが,
  %~t1の中の前から8文字を取り出し, /を削除する方法はどうすればいいでしょうか?

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

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

  238 :for221.bat (文字列変換):2003/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:2003/03/12 07:14
  >>238
  おおおおおおおおおおお!!
  ありがとうございます!
  勉強します.

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

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

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

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

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

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

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

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

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

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

  250 :238:2003/03/13 05:03
  >>238 >>221
  1日越しのバグ, 最後の桁が抜ける. 『03.03.1』
  goto LOOP2  ・・・x
  goto LOOP1  ・・・o

  251 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/03/13 17:52
  >>251
  バッチファイル名を与えるとそのショートカットを作るバッチきぼん.

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

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

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

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

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

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

  259 :envsize.bat:2003/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 :デフォルトの名無しさん:2003/03/17 11:49
  >>259
  command /cでコマンドを実行させると大丈夫みたいです.

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

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

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

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

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

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

  267 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/04/01 13:54
  for

  270 :for268.bat:2003/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:2003/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:2003/04/02 00:26
  >>268
  補足, 現状iが3000以上になる時はプログラムの修正が必要なので注意です.

  273 :270-272:2003/04/02 00:35
  そしてバグ発生.
  1レスに詰め込もうとして, うっかり消しちゃった.
  下の位置に :JOB の行を追加してください. n(_ _)n
  if NOT "%i%"=="1001" goto COUNTUP
  :JOB
  find "-%i%-"<FOR268.DAT>tmp.bat

  274 :for268.bat (全修正):2003/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:2003/04/02 08:45
  >>270-274
  ありがとうございます. うるうる.
  ずいぶん長いソースになるんですね.
  あとでやってみます.
  フォルダ名はいちおう連番にしておいて, あとで改名するつもりでした.
  なので, 配列を使うほうのソースも参考になります.
  どうしようかと思ってましたが, 質問してよかったです.
  DOS時代の大量のFDを塩漬けしたい人には役に立つと思います.

  276 :270:2003/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 :デフォルトの名無しさん:2003/04/06 23:44
  良スレage

  278 :デフォルトの名無しさん:2003/04/07 14:40
  HOGE=$(hogehoge)
  をバッチファイルでできますか?

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

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

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

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

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

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

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

  286 :デフォルトの名無しさん:2003/04/08 01:27
  >>285
  MS-DOS時代のプリンタなら, こういう事も出来ましたね・・・.
  でも今のWindows用プリンタではだめかも. (試したことない)
  copy textfile.txt prn
  type textfile.txt prn
  #prnというのは, nul, con, aux等と同じく特殊デバイス名.

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

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

  289 :285:2003/04/08 01:55
  一緒の話題にあったのが, レジストリエディタで.
  HKEY_CURRENT_USER\software\Microsoft\Notepad
  の.
  fSaveSettings
  をDWord型でOn(1にしる!)にしとくとNotepadの印刷時マージンやらヘッダフッタ設定を記憶させておけるってやつ.
  簡単にテキストファイルを印刷するには十分かな.

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

  291 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/04/08 19:29
  >>288
  cmd.exeだけのはず.

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

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

  295 :デフォルトの名無しさん:2003/04/12 23:37
  >>294
  マジかよ!?
  >>290
  >for /f %i in ('hogehoge') do @set HOGE=%i
  /fというのがcommand.comではできんかった. cmd.exe専用でしょうか?
  /f無しでやったら, %HOGE%には'hogehoge'が入りました.

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

  297 : - :2003/04/17 15:29

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

  299 :デフォルトの名無しさん:2003/04/18 21:10
  >>294
  ハァハァ.

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

  301 : - :2003/04/20 03:05

  302 : - :2003/04/20 03:42

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

  304 :デフォルトの名無しさん:2003/04/26 18:33
  >>300
  さんざん既出だと思うが.
  http://www.command.com/
  こんなサイトがあったとは・・・.

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

  306 :デフォルトの名無しさん:2003/04/27 15:01
  http://www.visualstudio.net/
  あるかな.

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

  308 :デフォルトの名無しさん:2003/04/30 22:51
  システムスタンプから日付と時間を取得し, その日付と時間を名前としたディレクトリを.
  自動的に作るバッチを作りたいと思います.
  例えばこんな風です. =>  \20030501-2300
  ご存知の方, その方法を教えてください.
  尚, 当方のOSはWindows2000です.

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

  310 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/05/01 01:40
  set hhmmss=%hhmmss:~0, 6%
  set hhmmss=%hhmmss: =0%

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

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

  314 :デフォルトの名無しさん:2003/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\TemporaryInternet
  Files"
  del /F /Q *.*
  cd "C:\Documents and Settings\Administrator\Cookies"
  del /F /Q /A : S- *.*
  EXIT

  315 :デフォルトの名無しさん:2003/05/03 01:38
  >>314
  自己レス.
  http://pc2.2ch.net/test/read.cgi/pcqa/1051866821/l50
  の90-92あたりで別に回答をいただいたのでこちらは終わりにします. ありがとうございました.

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

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

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

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

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

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

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

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

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

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

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

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

  328 :317:2003/05/09 01:09
  >>327
  アリガトウゴザイマス・・・.

  329 :317:2003/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 :デフォルトの名無しさん:2003/05/09 11:01
  どうなることを期待していて, 結果がどう期待に沿わなかったか,
  ちゃんと書かないところかな.

  331 :317:2003/05/09 11:33
  >>330
  いくつかのファイルをD&Dする.
  拡張子はそのままに上から順番にファイル名を,
  1.txt
  2.txt
  3.txt
  としたい.
  329のバッチでやると,
  1.txt
  1+1.txt
  1+1+1.txt
  となります.
  お助けを〜.

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

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

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

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

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

  337 :336:2003/05/09 21:26
  D&Dするのか, , , 前言撤回.

  338 :317:2003/05/09 21:34
  >>336
  WIN2000です.

  339 :317:2003/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 :デフォルトの名無しさん:2003/05/11 08:35
  >>317
  set /a
  cmd.exeだよな?

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

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

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

  344 :デフォルトの名無しさん:2003/05/14 05:00
  c:\program files\AAA\AAA.exe
  と.
  d:\program files\BBB\BBB.exe
  を同時に起動するにはどうすればよろしいの?

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

  346 :デフォルトの名無しさん:2003/05/15 02:26
  echoで空行(改行のみの行)を出力する方法ってないでしょうか?
  いくつかのバッチファイルを連続して呼び出している.
  バッチファイルがあります. 呼び出される側でログとして.
  echoで色々と出力しているのですが, ログをパッと.
  見た時に処理の分け目がわかりにくくて・・・・.
  NT4.0で使ってます.

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

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

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

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

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

  352 :デフォルトの名無しさん:2003/05/15 15:02
  echo. は昔(command.com)から使われてたテクニックだが,
  cmd.exeではecho=も使えるとは知らなかった.
  そもそも質問するときに環境を書かない>>346が悪い.

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

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

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

  356 :デフォルトの名無しさん:2003/05/17 00:21
  >>352
  > NT4.0で使ってます.
  思いっきり書いてあるが, , , ,

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

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

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

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

  361 : - :2003/05/28 13:01

  362 :デフォルトの名無しさん:2003/06/01 15:01
  ガーン.
  もう6月じゃん.

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

  364 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/06/02 01:10
  シニスメテ.bat

  366 :デフォルトの名無しさん:2003/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_performance100 -a_mode 2 -a_setting Q90_48_2 >f:\wmv9.bat
  上の段の.
  「cd C:\Program Files\Windows Media Components\Encoder」
  の部分がwmv9.batに書き込まれないのですが, なぜですか?

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

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

  369 :t-akiyama:2003/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 :デフォルトの名無しさん:2003/06/23 09:23
  だれかNT4.0使ってる人はいない?

  371 :デフォルトの名無しさん:2003/06/23 22:56

  372 :デフォルトの名無しさん:2003/06/24 23:21
  バッチファイルで入力した文字をテキストのある部分に書き込むことって出来ますか?WIN2K
  イメージで例えると.
  バッチ起動.
  IPを入力して下さい.
  >*.*.*.*
  ホスト名を入力して下さい.
  >hosuto
  hostsファイルへ書き出し.
  みたいな感じで.
  やっぱ別途ソフト使わないと無理ですか?

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

  374 :デフォルトの名無しさん:2003/06/25 20:38
  >373
  まぁ極単純にいうと.
  ファイルの中身:
  IP = ipadoresu
  HOST = hosuto
  で, ipadoresuとhosutoにバッチから入力するみたいな.
  あとwin2kって書いたけどWIN98素DOSの間違いです.

  375 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/06/25 23:01
  >>375
  1> = 標準出力.
  2> = 標準エラー出力.
  http://homepage2.nifty.com/winfaq/c/hints.html#548

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

  378 :名無しさん@お腹いっぱい.:2003/06/27 13:09
  >374
  環境が許すならWSH(VBS等)とかでやった方が早いかも.
  お前ら, wsh使ってますか? Part2
  http://pc2.2ch.net/test/read.cgi/win/1022248379/l50

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

  380 :375:2003/06/27 19:53
  376
  そうだったのか. 産休. でも, 見た目に気になるから, 表示しないようにできないのかな.

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

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

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

  384 :デフォルトの名無しさん:2003/06/27 23:08
  >>382-383
  サンクス.
  だまされたのか.

  385 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/07/04 15:53
  >>385
  Shell Scriptを知らないから,
  まずやりたいことを日本語に翻訳して.

  387 :デフォルトの名無しさん:2003/07/04 16:07
  >>386
  翻訳してくれるのであれば, ありがとう.
  ---------------------------------------------
  引数の数が 2 つなら ARGS 変数に hoge を代入.
  引数の数が 3 つなら ARGS 変数の tako を代入.
  それ以外なら "FAILURE" と出力して異常終了.
  XXX コマンドに ARGS 変数の内容を引数として渡して実行し, その結果を RESULT 変数に代入.
  実行した結果が "" なら正常終了, "" 以外なら "FAILURE" と出力して異常終了.
  ---------------------------------------------
  こんな感じ.

  388 :デフォルトの名無しさん:2003/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:2003/07/04 17:39
  訂正.
  else
      WScript.StdOut.WriteLine("FAILURE");
  [下矢印]
  else {
      WScript.StdOut.WriteLine("FAILURE");
      WScript.Quit(1);
  }

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

  391 :388:2003/07/04 17:51
  また訂正.
  if (RESULT == "") {
  [下矢印]
  if (RESULT != "") {

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

  393 :デフォルトの名無しさん:2003/07/05 02:10
  あるいはmsys
  >>388
  exit status返せる?

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

  395 :デフォルトの名無しさん:2003/07/06 23:11
  「キーの入力待ち」をするDOSアプリをバッチで.
  自動的に起動->終了したいのですが,
  方法はありますでしょうか?
  起動後にEnterを押さないと処理が始まらなくて,
  終了にも任意のキーを押す必要があるのですが.

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

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

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

  399 :デフォルトの名無しさん:2003/07/09 03:34
  >>397
  あ. 答えてくれてらっしゃる.
  超出来ました. 最高です!バッチリです!ヒャホーイ!

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

  401 : - :2003/07/15 10:01

  402 :絢安允安安維:2003/07/20 01:16
  絢安允安安維.

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

  404 :デフォルトの名無しさん:2003/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 :デフォルトの名無しさん:2003/07/24 17:14
  >>404
  start "C:\Program Files\hoge\hoge.exe"

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

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

  408 : - :2003/08/02 02:23

  409 : - :2003/08/15 16:39

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

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

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

  413 :デフォルトの名無しさん:2003/08/24 01:23
  次のようなバッチファイルを作りたいのですが, どのようにすればいいでしょうか.
  ・あるフォルダに入っているすべてのバッチファイルの.
  すべての行の左側に「echo 」と書き,
  すべての行の右側に「 >>wmv9」と書く.

  414 :訂正:2003/08/24 01:24
  次のようなバッチファイルを作りたいのですが, どのようにすればいいでしょうか.
  ・あるフォルダに入っているすべてのバッチファイルの.
  すべての行の左側に「echo 」と書き,
  すべての行の右側に「 >>wmv9.bat」と書く.

  415 :訂正:2003/08/24 01:25
  OS はWIN2kPROです.
  よろしくおねがいします.

  416 :^>:2003/08/24 04:03
  >>414
  for %%a in (*.bat) do for /f "delims=@" %%b in (%%a) do @echoecho %%b
  ^>^>wmv9.bat>>バッチ.cmd
  move バッチ.cmd バッチ.bat
  @はbatで使用されていない文字にすること.

  417 :訂正:2003/08/24 07:15
  >>416
  ありがとうございます.

  418 :デフォルトの名無しさん:2003/08/25 00:07
  実行したバッチファイルが置かれているパスを取得する方法って無いですかね.
  %0の中身の, バッチファイルの名前を取れれば良いんだけど・・・.

  419 :デフォルトの名無しさん:2003/08/25 08:21
  cmd.exeならできたはず.
  help set

  420 :デフォルトの名無しさん:2003/08/27 12:28
  >>418
  %0って起動時のコマンドラインから引数を.
  除いた部分が入っているだけじゃなかったっけ?
  c:\>c:\bat\test
    ->  %0 = c:\bat\test
  c:\>test
    ->  %0 = test
  c:\>test.bat
    ->  %0 = test.bat

  421 :デフォルトの名無しさん:2003/08/27 12:45
  そのディレクトリ部分を取り出したいんじゃないの?

  422 :デフォルトの名無しさん:2003/08/27 13:23
  >>418
  %~dp0
  call/? や for/? に説明がある.

  423 :デフォルトの名無しさん:2003/08/27 21:25
  >>421
  フルパスで起動しない限りディレクトリ自体が含まれてないから無理なのでは・・.
  それともNTだと必ずフルパスが入ってくる?

  424 :デフォルトの名無しさん:2003/08/27 22:26
  >>423
  >>422で解決だと思ーよ.

  425 :デフォルトの名無しさん:2003/09/10 23:26
  Windowsのバッチで,
  echo 1
  echo 2
  だと1と2の間と, 2の次に改行が入るけど, 改行を出力せずに.
  echoする方法ってありますか?

  426 :デフォルトの名無しさん:2003/09/14 18:58
  ない.

  427 :デフォルトの名無しさん:2003/09/15 08:02
  >>425
  入らないよ.

  428 :デフォルトの名無しさん:2003/09/15 09:03
  cygwin入れてprintfってのもあるけど.

  429 : - :2003/09/17 15:19
  バッチファイルで.
  指定のディレクトリに.
  あいうえお__20030917
  みたいに.
  指定の名前+本日の日付のフォルダ.
  を作成するにはどうすればいいのでしょうか?

  430 :デフォルトの名無しさん:2003/09/17 15:35
  >>429
  mkdir %指定のディレクトリ%\あいうえお_%DATE:~0, 4%%DATE:~5, 2%%DATE:~8, 2%

  431 :ヘルスズキ:2003/09/17 17:21
  >>430
  できませんでした. locale設定に依存しますね.
  c:\>echo %DATE:~0, 4%%DATE:~5, 2%%DATE:~8, 2%
  水 203/9/

  432 :デフォルトの名無しさん:2003/09/17 17:27
  >>431
  OSのバージョンかも.
  C:\>ver
  Microsoft Windows XP [Version 5.1.2600]
  C:\>echo %DATE%
  2003/09/17

  433 :432:2003/09/17 17:30
  Windows 2000なら.
  C:\>ver
  Microsoft Windows 2000 [Version 5.00.2195]
  C:\>echo %DATE%
  水 2003/09/17
  C:\>echo %DATE:~2, 4%%DATE:~7, 2%%DATE:~10, 2%
  20030917

  434 :デフォルトの名無しさん:2003/09/17 17:44
  mkdir あいうえお_%DATE:/=%

  435 :デフォルトの名無しさん:2003/09/17 17:49
  OSのバージョンもあるけど, Localeに激しく依存します.
  [コントロールパネル]-[地域のオプション]-[日付](Win2kの場合ね)
  で短い形式の書式を変えると%DATE%の出力フォーマットが変わります.
  (コマンドプロンプトは再起動が必要)

  436 :435:2003/09/17 18:01
  >>434
  これが一番きれいかも. 曜日が入っちゃうけどね.

  437 :WindowsMe:2003/09/17 19:10
  C:\WINDOWS>echo %DATE%
  ECHO は ON
  C:\WINDOWS>

  438 :デフォルトの名無しさん:2003/09/17 19:15
  阪神優勝_20030915-222545_aup_vfapi.wmv
  阪神優勝_20030915-222906++.avi
  阪神優勝_20030915-224138+_tpr_vfapi.wmv
  阪神優勝_20030915-225535+_tpr_vfapi.wmv
  阪神優勝_20030916-003659_tpr_vfapi+.wmv
  阪神優勝_20030916-072316+++.avi
  上のようなファイルがたくさんあって, これらをすべて選択してD&Dすると,
  下のようなファイル名にすることはバッチファイルでできますでしょうか?
  OSはWIN2kPROです.
  阪神優勝_20030915-222545.wmv
  阪神優勝_20030915-222906.avi
  阪神優勝_20030915-224138.wmv
  阪神優勝_20030915-225535.wmv
  阪神優勝_20030916-003659.wmv
  阪神優勝_20030916-072316.avi

  439 :デフォルトの名無しさん:2003/09/17 19:19
  阪神優勝_
  の部分は文字や文字の長さが変わります.

  440 :デフォルトの名無しさん:2003/09/17 21:23
  goto :優勝.
  >>439
  阪神優勝_ ではなく 阪神優勝 の部分が変化するときのバッチ.
  %^1と%~f1って何が違うんだろう.
  :優勝.
  echo %~f1>阪神.lst
  FOR /F "usebackq delims=_+. tokens=1, 2" %%i IN (阪神.lst) DO move"%~f1"
  "%%i%%j%~x1"
  if not "%~2"=="" shift & goto 優勝.
  del 阪神.lst
  goto :eof

  441 :デフォルトの名無しさん:2003/09/17 21:26
  >>440
  ありがとうございます.

  442 :デフォルトの名無しさん:2003/09/23 15:59
  ウィンドウズバッチってウェイトさせる事できるんですか?
  素人質問スマンです.

  443 :デフォルトの名無しさん:2003/09/23 21:43
  goto 開始.
  >>442
  ウェイトって, start /wait コマンドのことじゃないよね.
  linuxでのsleepみたいなものを期待してるのかな.
  だったら標準では入っていないと思う.
  :開始.
  @if "%1"=="" @echo 終了までに%%1に指定した秒数かかるバッチ&goto :eof
  @echo off
  set 待小=%TIME:~9, 2%
  set 待秒=%TIME:~6, 2%
  set 待分=%TIME:~3, 2%
  set 待時=%TIME:~0, 2%
  if %待小:~0, 1%==0 set 待小=%待小:~1, 1%
  if %待秒:~0, 1%==0 set 待秒=%待秒:~1, 1%
  if %待分:~0, 1%==0 set 待分=%待分:~1, 1%
  if %待時:~0, 1%==0 set 待時=%待時:~1, 1%
  set /a 待機=((%待時%*60)+%待分%)*60+%待秒%+%1
  goto 待機.

  444 :デフォルトの名無しさん:2003/09/23 21:45
  :待機.
  set 動小=%TIME:~9, 2%
  set 動秒=%TIME:~6, 2%
  set 動分=%TIME:~3, 2%
  set 動時=%TIME:~0, 2%
  if %動小:~0, 1%==0 set 動小=%動小:~1, 1%
  if %動秒:~0, 1%==0 set 動秒=%動秒:~1, 1%
  if %動分:~0, 1%==0 set 動分=%動分:~1, 1%
  if %動時:~0, 1%==0 set 動時=%動時:~1, 1%
  set /a 動作=((%動時%*60)+%動分%)*60+%動秒%
  if %待機% GTR %動作% goto 待機.
  @echo 開始時刻 %待時%:%待分%:%待秒%
  @echo 終了時刻 %動時%:%動分%:%動秒%
  @goto :eof
  @echo %待機%
  @echo %動作%

  445 :デフォルトの名無しさん:2003/09/24 00:17
  ヘビーループはやめれ.
  俺ならcygwinのsleep呼んでしまう.

  446 :デフォルトの名無しさん:2003/09/24 01:19
  >>445
  外部exe使わないならこうなるだろうなと思って書いただけ.
  俺ならUnxUtilsのsleep.exe使うけどな.

  447 :デフォルトの名無しさん:2003/09/24 01:38
  choice.comの遅延.

  448 :デフォルトの名無しさん:2003/09/26 00:26
  バッチファイルで.
  1.txtで中の文字が1
  のファイルを.
  2.txtで中の文字が2
  3.txtで中の文字が3
  みたいにコピーする方法とかありますでしょうか?

  449 :デフォルトの名無しさん:2003/09/26 00:28
  やりたいことがよくわからないけど,
  ファイルの中身はforで読めるからやり方あるかもね.

  450 :デフォルトの名無しさん:2003/09/26 00:56
  > 1.txtで中の文字が1
  たったこれだけでここまで意味不明なのもすごいな.

  451 :デフォルトの名無しさん:2003/09/27 16:29
  現在登録されているIME辞書ツールの一覧の抽出を.
  「本日の日付.txt」で実行できる.
  と言うバッチファイルを作りたいのですが.
  可能でしょうか?

  452 :デフォルトの名無しさん:2003/09/27 16:49
  >>448
  if exist 99.txt echo 100 > 100.txt
  goto exit
  if exist 98.txt echo 99 > 99.txt
  goto exit
  ・・・.
  :exit
  何をやりたいか少々不明&テストしてないけど.

  453 :デフォルトの名無しさん:2003/09/30 14:11
  >>451
  日付を環境変数に取り出す方法は, このスレでも何度か出ている.

  454 :デフォルトの名無しさん:2003/10/02 17:40
  バッチファイルは初心者ですが, 以下の質問をさせてください.
  ファイル名が.
  00000001.から00099999.
  までのファイルを消したいのですが, 特殊な名前のファイルのため下記のようにDelコマンドを打たなくてはなりません.
  *やdeltreeでは消せないようです.
  で, ループさせて消そうとおもったのですが, 下記のバッチファイルではうまくいきません.
  バッチでの変数の扱いがちょっとわたしには?なので, これ以上先へすすめなくなってしまいました・・・.
  どなたかお知恵をお貸しください.
  @ECHO OFF
  SET A=1
  :LOOP
  del "\\?\C:\RECYCLER\NPROTECT\0000000%A%."
  SET A=%A%+1
  GOTO LOOP

  455 :デフォルトの名無しさん:2003/10/02 17:45
  いま考えてるのは一桁ずつ0-9までLOOPを入れ子状態にしてまわす方法が.
  かけるのかなぁとおもってるんですが, なんか書くのがめんどくさそう・・・.

  456 :デフォルトの名無しさん:2003/10/02 21:17
  >>454
  setで計算する時は.
  set /a 式.
  変数にA使うから最初見た時間違いに気付かなかったよ.
  入れ子じゃないけど作ってみた.
  @echo off
  SET A=1
  :1
  del "\\?\C:\RECYCLER\NPROTECT\0000000%A%."
  SET /A A = %A% + 1
  if %A% lss 10 goto 1
  :10
  del "\\?\C:\RECYCLER\NPROTECT\000000%A%."
  SET /A A = %A% + 1
  if %A% lss 100 goto :10
  :100
  del "\\?\C:\RECYCLER\NPROTECT\00000%A%."
  SET /A A = %A% + 1
  if %A% lss 1000 goto 100
  :1000
  del "\\?\C:\RECYCLER\NPROTECT\0000%A%."
  SET /A A = %A% + 1
  if %A% lss 10000 goto 1000
  :10000
  del "\\?\C:\RECYCLER\NPROTECT\000%A%."
  SET /A A = %A% + 1
  if %A% lss 100000 goto 10000

  457 :454:2003/10/03 09:30
  >456
  計算式を評価して代入するにはAオプションがいるんですね. きづいてなかったっす.
  昨日はあきらめてVBでやることにして, 動かしたんですが, あやまってDOS窓開きまくりでファイル消し始めて,
  ある程度は消えたんですが, OSあぼーん, ソースも保存してなくてあぼーんしたので放置してました.
  いただいたソースで今無事全ファイル削除できました. ありがとうございました.
  桁が繰り上がるたびに0の数減らすんですね. これも思いつかなかったっです. w.

  458 :デフォルトの名無しさん:2003/10/03 11:04
  >>454
  del \\?\C:\RECYCLER\NPROTECT\0000000*.
  で消せない?

  459 :454:2003/10/03 13:23
  >458
  ちょっとそれはわからないです. もうファイル消しちゃったんで.
  もしかしたら\\?\がポイントかもしれないから消せるかもしれませんね・・.

  460 :454:2003/10/03 13:24
  といまおもったんですが, ""でくくらないと消せないようなので*は使えないんじゃないでしょうか.

  461 :デフォルトの名無しさん:2003/10/03 14:10
  数字に限定しないなら.
  for %a in (000?????.) do del "\\?\C:\RECYCLER\NPROTECT\%a"
  でよかったかも.

  462 :454:2003/10/03 17:35
  >461
  DOSバッチのFORの説明をあるサイトで見たんですが, VBのForとはかなりちがうみたいで理解できなかったっすw.
  なるほど, そうかくと?????のなかに数字が00001からひとつずつ増えていくんですね?

  463 :デフォルトの名無しさん:2003/10/04 03:37
  >>462
  ?は任意の1文字.
  FOR /L あるの忘れてた. 使えば5行ですんだかも.

  464 :デフォルトの名無しさん:2003/10/06 17:45
  こういうのを書いてみた. WindowsのMS-DOSプロンプトでスレッド間通信.
  (PureDOSでSJIS扱えるまともなMultithreaderがあればなぁ・・・)
  セッション切り替えを実装していないのでペア間通信しかできない.
  これ自体, 環境変数ではなくファイル受け渡しという手もあるので.
  別にバッチやDOSではなくても可能. 応用すれば, C/S型のアプリや.
  Windows + DOSといったhybrid programが作成可能.
  使用方法はDOSプロンプトを2つ同じフォルダで起動.
  一方で, このバッチを起動して, もう一方でenvdata.batを生成.
  終了方法は, ソース読め. (w.
  --- cut here ---
  @echo off
  :: 環境変数を応用したスレッド間通信.
  :: envdata.batの内容は set 環境変数名=変数内容とする.
  :: by.Chysanthemum Kernel Project(謎)
  :: this code is public domain. you use is as you like.
  :: but don't use commercial this condition.
  set thread.env=running
  :loop
  if exist envdata.bat call envdata.bat
  if "%thread.env%"=="halt" goto halt
  goto loop
  :halt
  set thread.env=
  del envdata.bat

  465 : - :2003/10/08 23:07
  指定のフォルダを削除するにはどうすればいいのでしょうか?
  DELTREEを使うのはわかるのですが,
  バッチファイルとして認識されていませんと表示されて削除できません.
  教えてください.

  466 :デフォルトの名無しさん:2003/10/08 23:37
  >>465
  rd/s/q C:

  467 :デフォルトの名無しさん:2003/10/08 23:45
  >>465は, 今頃実行してるんやろか・・・.

  468 : - :2003/10/08 23:50
  >>467
  してるわけないじゃん.
  Cドライブの中身全部消えるじゃん.
  本当の答えを教えてください.

  469 :デフォルトの名無しさん:2003/10/08 23:56
  >>468
  そんなにDELTREE使いたいなら.
  Win98のCOMMANDフォルダから取ってこいよ.

  470 :デフォルトの名無しさん:2003/10/09 09:43
  >466=>467  なんかワロタ.

  471 :デフォルトの名無しさん:2003/10/12 22:33
  すいません, 質問お願いします. 使用しているのはXP HOMEのコマンドプロンプトです.
  「A%20B.txt」という名前のファイルを「A B.txt」にリネームするバッチを組みたいの.
  ですが, 現状だと%2をコマンドライン引数と認識しているようで上手くリネーム出来ま.
  せん. %を%そのものの文字として扱うための表記はどうすればいいのでしょうか?

  472 :デフォルトの名無しさん:2003/10/12 22:34
  %%

  473 :471:2003/10/12 22:52
  >>472さん.
  出来ました. こんな単純な話だったんですね(汗.
  どうもありがとうございます.

  474 :デフォルトの名無しさん:2003/10/13 21:23
  フォルダを削除する時に.
  Deltree "C:\新しいフォルダ"
  とやると.
  操作可能なプログラムまたはバッチ  ファイルとして認識されていません.
  とでます.
  削除するにはどうすればいいのでしょうか?

  475 :デフォルトの名無しさん:2003/10/13 21:24
  Windowsのバージョンは?

  476 :デフォルトの名無しさん:2003/10/13 21:36
  >>475
  xpです.
  RMDIRでやろうとすればから空のフォルダのみだし.

  477 :デフォルトの名無しさん:2003/10/13 21:52
  >>476
  rmdir /?

  478 :デフォルトの名無しさん:2003/10/13 21:54
  rmdir /s
  で出来る.

  479 :デフォルトの名無しさん:2003/10/13 22:03
  deltree.exe/y = rd/s/q

  480 :デフォルトの名無しさん:2003/10/27 10:48
  list.txtから一行ずつテキストを読み込んで%line%に受け取ることはできますか?
  for %%line in "list.txt" do echo %%line
  みたいなことをやりたいのですが.

  481 :デフォルトの名無しさん:2003/10/27 12:18
  >>480
  このスレ最初から読んでみ.

  482 :デフォルトの名無しさん:2003/11/05 01:53
  ECHO 文字列>test.txt
  とするとtest.txtに「文字列」のあとに改行がついてしまいます.
  改行をなくすまたは最初から出力させない方法, テクニック(コピーしたり連結したりをふくむかも)
  があれば教えてください.
  文字列にCDを入れて, CD >test2.txtで作ったものと.
  連結してバッチファイルを作って, 元のディレクトリに戻るのに使います.

  483 :デフォルトの名無しさん:2003/11/05 23:29
  >>482
  あらかじめ改行を含まない.
  CD_[EOF]
  ("_"はスペース)
  のような内容のファイル(たとえばtest1.txt)を作っておいて.
  copy /Y test1.txt test2.txt
  CD >> test2.txt
  とか.
  Win2k/XPなら pushd/popd を使ったり.
  echo cd %CD% > test2.txt
  で簡単にできるんだが・・・.

  484 :デフォルトの名無しさん:2003/11/11 00:19
  >>482-483
  9X系の場合.
  echo prompt CD $P >tmp.bat
  command /c tmp.bat | find /v "prompt" >>test2.bat

  485 :デフォルトの名無しさん:2003/11/12 00:10
  コマンドプロンプトのショートカットで,
  そのショートカットが開くと同時に, カレントディレクトリが,
  そのショートカットがあるディレクトリにするには, プロパティの作業フォルダを.
  何にすればいいのでしょうか. 教えてください.
  %~d0%~p0でうまくいっていたのですが, 急に.
  C:\Program Files\Common Files\System\Mapi\1041>
  で始まるようになってしまいました.

  486 :デフォルトの名無しさん:2003/11/13 20:31
  MP3のインデックスを作成.
  @echo off
  cd "C:\My Music"
  dir /s /b * > 全て再生.m3u
  for /D /R %%i in (*) do (
    pushd %%i
    dir /s /b * > 全て再生.m3u
    popd
  )
  rem pause

  487 :デフォルトの名無しさん:2003/11/14 02:08
  REM Javaのソースをコンパイルして実行.
  javac %1
  java %1
  PAUSE

  488 :487:2003/11/14 02:09
  拡張子 .java が取れてないですね.
  どうやって取ったらいいんですか?

  489 :デフォルトの名無しさん:2003/11/14 03:20
  そもそもドットと拡張子を入力しないでいいようにバッチを書き直せば. w.
  w2k以降なら %~n1 やら %~dpn1 とか使えるよ.

  490 :487:2003/11/14 04:59
  Hellow_Java.javaを第一引数に与えると, コンパイルして, 成功して,
  Hellow_Java.classが出来たら実行する物を作ってみました.
  Hellow_Java.classが作成されているのにEXISTで.
  %~n1%.classを認識してくれませんでした.
  EXISTによる確認なしだと, 実行までしてくれるのですが.
  後は, コンパイル実行して, エラーで前にコンパイルした同名の.
  〜.classがあるときは実行しないようにする方法が思いつきません.
  IF EXIST %1% GOTO FA
  GOTO FF
  :FA
  javac %1%
  IF EXIST %~n1%.class GOTO FB
  GOTO END
  :FB
  java %~n1%
  GOTO END
  :FF
  ECHO JAVA のソースファイルファイルをアイコン上にドラッグしてください.
  :END
  PAUSE

  491 :デフォルトの名無しさん:2003/11/15 14:06
  >>490
  >>489でっす. あれからも頑張ってたのか.
  そこまでやるんなら make を使う.

  492 :デフォルトの名無しさん:2003/11/15 16:29
  >>490
  ?
  javac の戻り値で調べるのはだめ?
  以下は引数無しだとエラーになるので適当に工夫してくれ.
  @echo off
  setlocal enableextensions
  set srcf=%1
  set binf=%~dpn1.class
  if exist %srcf% (
    echo javac "%srcf%"
    if %ERRORLEVEL% equ 0 (
      echo java "%binf%"
    )
  ) else (
    echo java のソースファイルファイルをアイコン上にドラッグしてください.
  )
  pause
  endlocal
  というか, make 使うほうが良(ry

  493 :バッチ初心者:2003/12/05 11:09
  あるタブ区切りのaaa.txtファイル内の指定されたタブを編集したいのですが.
  方法がわからないので教えていただけませんでしょか?
  OSはWIN2000です. 条件は下記の通りです.
  ・1行が5つのタブで区切られている.
  ・ファイルによって行数が異なるので最終行まで見ないといけない.
  ・目的の区切られたタブの場所にデータが存在しない行とする行がある.
  この場合, 例えば全行の2個目のタブの場所に先頭行から順に最終行まで連番を振りたい場合.
  どのように処理すればよろしいのでしょうか?

  494 :デフォルトの名無しさん:2003/12/05 11:12
  >>493
  バッチファイルでそれをやるのは辛いような.
  フィルタ系の処理はPerlやWSHでやったほうがいいと思うよ.

  495 :デフォルトの名無しさん:2003/12/05 11:19
  シフトキーやコントロールキーの押下状態をERRORLEVELか何かにセットして判定に使えるコマンドって無い?
  SHIFT押しながら起動するとデバッグ情報出すとかやりたいんだけど.

  496 :デフォルトの名無しさん:2003/12/05 12:34
  >>495
  作れば?
  それともバッチファイル以外は作れないの?

  497 :495:2003/12/05 12:44
  >>496
  標準でそういった機能があるかどうか聞いているだけ.

  498 :デフォルトの名無しさん:2003/12/08 18:09
  >>494
  この程度ならawkだろ.

  499 :デフォルトの名無しさん:2003/12/10 23:36
  >>498
  *nix ならそれでいいけど, Windows ならわざわざ awk をインストールするのがめんどい.
  vbs でいいと思うが.
  Option Explicit
  Const ForReading = 1
  Const ForWriting = 2
  Dim FileSystem = CreateObject("Scripting.FileSystemObject")
  Dim InFile
  Set InFile = FileSystem.OpenTextFile("aaa.txt", ForReading, false)
  Dim OutFile
  Set OutFile = FileSystem.OpenTextFile("bbb.txt", ForWriting,True)
  Dim Number
  Number = 1
  While Not InFile.AtEndOfStream
    Dim Fields
    Fields = Split(InFile.ReadLine, vbTab, 5)
    Fields(1) = CStr(Number)
    Number = Number + 1
    OutFile.WriteLine(Join(Fields, vbTab))
  WEnd
  OutFile.Close
  InFile.Close
  動かしてないから, バグってたら直してくれ.

  500 :デフォルトの名無しさん:2003/12/11 01:56
  >>493>>494>>498-499
  [下矢印]のような aaa.bat を作ってコマンドプロンプトから.
  aaa aaa.txt bbb.txt
  と打ってやってもできます. バッチファイルにJScriptを埋め込む技を使ってます.
  @if (0==1) rem [aaa.bat]
  @echo off
  if (%2)==() goto usage
  if exist %0.bat %0.bat %1 %2
  cscript.exe /nologo /e:jscript %0 %1 > %2
  goto end
  :usage
  echo %0 infile outfile
  goto end
  @else
  var args = WScript.Arguments;
  var line = 0;
  var f = (new
  ActiveXObject("Scripting.FileSystemObject")).OpenTextFile(args(0));
  while (! f.AtEndOfStream)
    WScript.StdOut.WriteLine(f.ReadLine().replace(/^([^\t]*\t)[^\t]*\t/,"$1" +
  ++line + "\t"));
  f.Close();
  @end/*
  :end
  :*/

  501 :500:2003/12/11 02:07
  >>500 下から5行目のreplaceのところはもうちょっと単純に:
      WScript.StdOut.WriteLine(f.ReadLine().replace(/^(.*?\t).*?\t/,"$1" +
  ++line + "\t"));

  502 :495:2003/12/11 02:49
  pathextに.jsあるんだから無理にバッチファイルに埋め込まんでも.

  503 :デフォルトの名無しさん:2003/12/11 19:52
  >>502
  既定でwscriptで起動される環境でもcscriptで起動させるため.

  504 :教えてマソ:2003/12/21 07:06
  IEの履歴, テンポラリーファイル, クッキーを削除するバッチを.
  作ろうかと思ってる.
  クッキーは無事消せたんだが, テンポラリーファイルと履歴が消.
  えてくれないの・・・.
  フォルダ移動まではうまく逝ってて, 削除しようとすると失敗.
  コマンドプロンプトからやってみると, ファイルが何も見えない.
  感じになっている.
  ちなみに当方の環境は, XPで, そして共用パソコンだ.
  これはxpのセキュリティが強すぎるせいなのか??
  そして解決策はあるのか??
  教えてお願いエロい人!
  ちなみにかなーりさがってたのでageます. 許して下さい.

  505 :デフォルトの名無しさん:2003/12/21 07:28
  call hoge.mdb
  では普通にAccessでhoge.mdbが起動するのに,
  start hoge.mdb
  ではDOS窓で起動(?)しちゃうのはなんででつか?
  ヘルプだとstartでもいいような書き方なのに.
  callだとAccess起動後もDOS窓が残るんで困るんす.
  ちなみに, Win2000す.

  506 :デフォルトの名無しさん:2003/12/21 15:50
  >>504
  explorer.exeが起動していると, index.datが共有違反になり消せなくなる.
  回避するには, explorer.exeを殺しておく必要がある.

  507 :デフォルトの名無しさん:2004/01/07 23:19
  新年ズサー.

  508 :デフォルトの名無しさん:2004/01/09 04:26
  ワンクリックでアプリを2個起動させるバッチファイルを作りたいんですが.
  D:\software\aaaa\xxxxx.exe
  D:\software\bbbb\xxxxx.exe
  じゃだめなんでしょうか. .
  うまくうごきません.

  509 :デフォルトの名無しさん:2004/01/09 04:27
  start D:\以下略.
  start D:\以下略.

  510 :デフォルトの名無しさん:2004/01/09 04:29
  >>508
  それだと一番目のが終らないと二番目のは起動しない.

  511 :デフォルトの名無しさん:2004/01/12 14:30
  batファイル.
  format c: /q <go
  goファイル.
  y

  512 :デフォルトの名無しさん:2004/01/12 14:31
  やってみたことが無い奴ほどformat c:を書きたがる.

  513 :デフォルトの名無しさん:2004/01/12 14:33
  >>511
  起動した瞬間にフォーマットでつか?

  514 :デフォルトの名無しさん:2004/01/12 15:19
  IFで比較対象の文字列にワイルドカードを用いる方法を教えてください.
  IF "abc"=="*bc"で真にしたいのです. .

  515 :デフォルトの名無しさん:2004/01/12 22:46
  @ECHO (ESC)[31mError(ESC)[0m
  (ESC):エスケープシーケンス.
  上記のように書いて, 文字を赤で表示するようなことが出来た気がするのですが,
  2000/XPでは出来ないのでしょうか?
  もし, この方法で出来ないとしても, 他の方法でできるとしたら, その方法を教えてください.

  516 :デフォルトの名無しさん:2004/01/12 22:47
  Win32API使えば出来るけどバッチファイルからは無理じゃないの.
  あとcygwinでも出来る.

  517 :デフォルトの名無しさん:2004/01/12 23:04
  >>516
  残念.
  「バッチファイルで出来るならやろうかな」程度の事だったので, 諦めます.
  ありがとう.

  518 :デフォルトの名無しさん:2004/01/13 17:17
  がいしゅつかもしれませんが,
  9x系をシャットダウンできるコマンドはありませんか?
  NT系なら,
  shutdown -s -t 0
  一発なんですが・・・・・・.

  519 :デフォルトの名無しさん:2004/01/13 17:42
  >>515
  config.ntにansi.sysを組み込んで, command.comを起動すれば出来る.

  520 :518:2004/01/14 16:00
  >>515じゃないけど質問.
  それどうやるの?
  Config.ntに.
  device = c\:windows\system32\ansi.sys
  ってやったけどうまくいかない.
  環境はWinXP.

  521 :デフォルトの名無しさん:2004/01/14 21:46
  >>520
  NT系じゃansi.sysは無効なんじゃなかったか.

  522 :デフォルトの名無しさん:2004/01/14 22:12
  >>520
  さらにconfig.ntの最後の行に.
  DOSONLY
  を追加しれ.
  これでansi.sysが有効になるはず. (ただし16bit DOSプログラムにのみ有効)

  523 :デフォルトの名無しさん:2004/01/14 22:55
  bu.exeを2000で使えてる方はいらっしゃいませんか?

  524 :デフォルトの名無しさん:2004/01/15 11:37
  ブッ.

  525 :518:2004/01/15 15:54
  >>522
  なに!
  じゃあ, 32bitは動かんのか?
  それじゃあ意味がありまへんがな.

  526 :デフォルトの名無しさん:2004/01/18 18:52
  >>523
    cmd.exeからではなくcommand.comから起動してみてください.
  それでだめならばxtrやらC/C++/perlで同等のコマンドを作るしかないです.
  >>525
    cmd.exe上ではエスケープシーケンスが使えなかったはずでは?
  諦めてWinbatchEhやら他の言語を使いましょう.

  527 :デフォルトの名無しさん:2004/01/21 22:19
  >>518
  http://arena.nikkeibp.co.jp/tec/win/gaz/362/

  528 :518:2004/01/22 16:51
  >>527
  thanks!

  529 :529:2004/01/25 18:56
  以下のようなバッチファイルを記述したいと考えています.
  起動されたフォルダ内で処理をするabcというプログラムがあるとして,
  バッチファイルを起動するとそのフォルダとそのフォルダ以下のサブフォルダを含めて.
  abcプログラムの処理をしたいと考えています.
  つまり, あるフォルダでバッチファイルを起動するとそのフォルダ以下のサブフォルダを検出し.
  サブフォルダに移動してabcというコマンドをうつということを全サブフォルダで.
  行いたいわけです.
  なにかよいアイデアはあるでしょうか?

  530 :デフォルトの名無しさん:2004/01/25 21:00
  手っ取り早くcygwin入れてfind+xargs
  ってーいうのはこのスレでは反則ですか?

  531 :デフォルトの名無しさん:2004/01/25 21:38
  >>529
  >>486

  532 :デフォルトの名無しさん:2004/01/25 23:04
  >>529
  for /R . /D %d in (*) do (cd "%~fd" & abc)

  533 :529:2004/01/26 00:10
  >>530-532
  ありがとうございます.
  /D と  /R  でいけるみたいですね.
  それを使ってやってみます.

  534 :デフォルトの名無しさん:2004/02/03 16:05
  Windows 98のコマンドプロンプトで %~dp0 に相当する値を.
  取得する右方方を教えてください.
  おねがいします.

  535 :デフォルトの名無しさん:2004/02/06 01:15
  DLLがエクスポートしている関数を呼び出せたと思う.

  536 :sage:2004/02/07 09:44
  >>534 ヒントは >>484 にある.

  537 :ひさまつ:2004/02/10 03:38
  教えて君で申しわけないのですが, SORT
  テキストファイルやテキストデータを昇順/降順に並べ替えたいのです.
  でも, 書籍の通りにやっても下記エラーになってしまいます.
  OSは98SEです.
  Microsft(R) Windows 98
  (C)Copytight Corp 1981-1999
  C:\WINDOWS>\temp1>dir /b
  コマンドまたはファイル名が違います.
  SAMPLEをなぞってるだけなんですが・・・.
  ちなみにtempフォルダだとややこしいと思って, temp1のフォルダにしてるだけ.
  なんですけど.
  c:\temp>dir /b -------------DIRコマンドでファイル名のみを表示した.
  a-file.txt
  b-file.txt
  c-file.txt
  c:\temp>dir /b | sort /r  -----------パイプ処理で逆順に並び替えて表示.
  c-file.txt
  b-file.txt
  a-file.txt

  538 :デフォルトの名無しさん:2004/02/10 03:41
  c:\temp>
  [上矢印]は入力する必要は無い.
  "dir /b | sort /r"
  だけを入力すればいい.

  539 :デフォルトの名無しさん:2004/02/10 17:02
  マルチ.

  540 :ひさまつ:2004/02/11 02:31
  ここまでは, 出来ました.
  C:\WINDOWS>dir /b C:\TEMP1
  c-file.txt
  a-file.txt
  b-file.txt

  541 :ひさまつ:2004/02/11 03:03
  わはは.
  出来ました〜〜〜〜〜.
  C:\WINDOWS>dir /b "C:\TEMP1" | sort /r
  c-file.txt
  b-file.txt
  a-file.txt
  この人の著書はだめぽ.
  http://www.iijima.nu/

  542 :デフォルトの名無しさん:2004/02/11 20:55
  killみたいなコマンドはないんでしょうか?
  atで起動したのを殺したいんですが・・・.

  543 :デフォルトの名無しさん:2004/02/11 21:23
  >>542
  XPならtaskkill.exe

  544 :デフォルトの名無しさん:2004/02/11 22:03
  Win2000 Support Tools に kill.exe がある.

  545 :デフォルトの名無しさん:2004/02/11 22:04
  NT Resource Kit にもある.

  546 :デフォルトの名無しさん:2004/02/11 22:04
  Cygwinにもある.

  547 :デフォルトの名無しさん:2004/02/12 13:28
  w2kを使ってるんですが, デフォルトでは無い.
  ということでしょうか. ありがとうございました.

  548 :デフォルトの名無しさん:2004/02/15 03:14
  すいません. ワールドカードを使いたいのですが.
  エラーが出ます.
  D:\Temp>type 文書*.txt
  ファイルが見つかりません. - 文書*.txt

  549 :デフォルトの名無しさん:2004/02/15 03:49
  >>548
  typeはワイルドカード指定不可.
  for %i in (文書*.txt) do type %i

  550 :デフォルトの名無しさん:2004/02/15 06:10
  >>548
  D:\Temp>copy 文書*.txt con

  551 :デフォルトの名無しさん:2004/02/15 12:40
  質問なのですが,
  A.txtの中に入っている文字列と,
  B.txtの中に入っている文字列を重複チェックを掛けて,
  重複している文字列だけ消去して, C.txtに出力というバッチはどう書いたらよいのでしょうか?
  どなたかおわかりになられる方いらっしゃいましたら,
  ご教授お願いします.

  552 :デフォルトの名無しさん:2004/02/15 12:43
  標準じゃ無理.
  uniq探して使っとけ.

  553 :デフォルトの名無しさん:2004/02/15 13:06
  uniqよりはcomm

  554 :デフォルトの名無しさん:2004/02/15 16:20
  >>549
  あー, 出来ました.
  有難う御座います.
  >>550
  まだ, 勉強不足なので処理がわかりません.
  D:\Temp>copy 文書*.txt con
  文書1.txt
  昨日は雨でした.
  今日は一日曇ってます文書2.txt
  来週は雨が多く, 晴れの日が少ないでしょう. 1 個のファイルをコピーしまし.
  た.

  555 :デフォルトの名無しさん:2004/02/17 17:28
  >>550
  理解できたと思います.
  これでいいのでしょうか?
  結果です.
  AドライブのFDにちゃんとファイルがコピーされてました.
  D:\Temp>copy 文書*.txt a:
  文書1.txt
  文書2.txt
  2 個のファイルをコピーしました.

  556 :デフォルトの名無しさん:2004/02/17 17:35
  あー, でもconだと何処にコピーされてるか解ってないな.
  勉強しておきます.
  解らなかったら, 質問しても良いですか?

  557 :デフォルトの名無しさん:2004/02/17 17:37
  >>556
  console

  558 :デフォルトの名無しさん:2004/02/18 18:16
  質問です.
  引数があるかどうかをチェックするのに.
    IF "%1" = ""
  で判断して, それはうまくいっているのですが,
  デスクトップとかにあるファイルを渡すと,
  「andの使い方が間違っています」と表示されて, 強制終了します.
  どうもパスにスペースを含んでいるのがまずいらしいというのは見当がついたんですが,
  ""で囲んでもダメとなると, どうやって回避したものかわかりません.
  なにかうまい方法はないでしょうか.

  559 :デフォルトの名無しさん:2004/02/18 18:17
  環境とどういうファイル名かも書け.

  560 :デフォルトの名無しさん:2004/02/18 19:06
  >>558
  IF "%~f1" == ""

  561 :558:2004/02/18 19:26
  >>560
  無事判定できました.
  ありがとうございました.

  562 :556:2004/02/19 19:38
  >>557
  console  <-これは, どうやって探すのですか?
  Windowsの検索では, TXTの拡張子が出てきません.
  DOSでやらないと探せないのでしょうか?

  563 :デフォルトの名無しさん:2004/02/19 20:08
  >>562
  con という, コンソールデバイスだよ.

  564 :556:2004/02/20 18:29
  >>563
  ちょっと調べておきます.
  解らなかったら, 又, 質問させてください.

  565 : - : *

  566 : - : *

  567 : - : *

  568 : - : *

  569 :デフォルトの名無しさん:2004/02/21 17:23

  570 :デフォルトの名無しさん:2004/02/22 23:56
  教えてください.
  batファイルでftpコマンドがかかれているファイルを読み込みFTPでサーバからファイルを.
  ダウンロードを行います. もしダウンロードに成功した場合は.okファイルを作り, ダウンロード.
  に失敗した場合には.ngファイルを作りたいのですがどうもうまくいきません.

  571 :デフォルトの名無しさん:2004/02/22 23:57
  >教えてください.
  なにをですか?
  >どうもうまくいきません.
  なにがですか?

  572 :デフォルトの名無しさん:2004/02/24 19:52
  すいません. 教えて君で申しわけないのですが.
  カレントディレクトリ内に3個のサブディレクトリを作りたいのですが.
  上手く出来ません. 結果がこうです.
  D:\>md test
  D:\>cd test
  D:\test>md test001
  D:\test>dir /w
  ドライブ D: のボリュームラベルはありません.
  ボリュームシリアル番号は 11D3-2521
  ディレクトリは D:\test
  [.] [..] [TEST001]
  0 個 0 バイトのファイルがあります.
  3 ディレクトリ 186, 802, 176 バイトの空きがあります.
  D:\test>md test002 test003 test004
  パラメータが多すぎます. - test003

  573 :デフォルトの名無しさん:2004/02/24 20:05
  訂正.
  すいません. 教えて君で申しわけないのですが.
  最初にd:\testディレクトリを作り, その後にカレントディレクトリ内に.
  1個のサブディレクトリ作り, test002 test003 test004という3つのディレクトリを1度に.
  作り, dada\temp\00という3階層のディレクトリを1度に作りたいのですが.
  上手く出来ません. 結果がこうです.
  D:\>md test
  D:\>cd test
  D:\test>md test001
  D:\test>dir /w
  ドライブ D: のボリュームラベルはありません.
  ボリュームシリアル番号は 11D3-2521
  ディレクトリは D:\test
  [.] [..] [TEST001]
  0 個 0 バイトのファイルがあります.
  3 ディレクトリ 186, 802, 176 バイトの空きがあります.
  D:\test>md test002 test003 test004
  パラメータが多すぎます. - test003

  574 :573:2004/02/24 20:15
  このようにしたいのですが.
  D:\test
  |_dada
  | |___temp
  | |__00
  |
  |_______test001
  |
  |
  |_______test002
  |
  |
  |_______test003
  |
  |
  |
  |_______test004

  575 :573:2004/02/24 20:21
  OSはWin98SEです.
  何度もすみません.

  576 :デフォルトの名無しさん:2004/02/24 20:35
  一度には無理分けて作れ.
  md test
  cd test
  md test001
  md test002
  md test003
  md test004

  577 :デフォルトの名無しさん:2004/02/24 20:37
  md が1個しか引数とれないんじゃ仕方ないんじゃね?

  578 :デフォルトの名無しさん:2004/02/24 20:38
  >>575
  :md
  md %1
  @shift
  @if not "%1"=="" goto md

  579 :573:2004/02/24 21:22
  >>578
  ごめんなさい.
  ちょっと記述して貰いたいのですが・・・.
  ちょっとその記述だけでやってこうなるから・・.
  どこに何を記述するか, 教えてください.
  バカですから, やってしまいました.
  結果です.
  D:\Temp>:md
  D:\Temp>md %1
  D:\Temp>@shift
  コマンドまたはファイル名が違います.
  D:\Temp>@if not "%1"=="" goto md
  コマンドまたはファイル名が違います.

  580 :デフォルトの名無しさん:2004/02/24 22:02
  Win98SEでshiftって使えなかったっけ.
  それとも@を付けたのがいけないのか.

  581 :デフォルトの名無しさん:2004/02/24 22:05
  578は地雷.

  582 :デフォルトの名無しさん:2004/02/24 22:37
  >>570
  FTPソフトに何を使ってるのか分からんが, ダウンロード後に.
  IF EXIST "filename" GOTO hogehoge
  で分岐させりゃ, いいんじゃね?
  うまくいかないなら, ダウンロードそのものがうまくいってるのかどうか.
  へたすっと, バッチファイル関係ないかも知れないしな.
  そもそも製作依頼スレじゃないよな, ここ.
  うまくいなかなかったバッチファイルなりを載せないと何をしたいのかも分からん.
  質問ヘタならソースで語ってくださいな.

  583 :デフォルトの名無しさん:2004/02/25 10:40
  >>580
  >>579はコマンドラインから打ったんだろ.
  >>578の:mdから後をバッチファイルに汁>>573

  584 :デフォルトの名無しさん:2004/02/25 14:33
  >582
  ファイルが途中で切れてもわからない. errorlevelでは拾えない.
  FTPサーバのステータスコードを見るしかない.

  585 :573:2004/02/25 18:34
  >>583
  すいません. バッチの作り方がまだ, 解ってないのです.
  申し訳ありません. 結局, 下記のようにするしかないのかな?
  D:\test>md \test\test001
  D:\test>md \test\test002
  D:\test>md \test\test003
  D:\test>md \test\test004
  D:\test>md \test\dada
  D:\test>md \test\dada
  D:\test>md \test\dada\00

  586 :デフォルトの名無しさん:2004/02/25 19:16
  そうだよ. つかヘルプ嫁.

  587 :デフォルトの名無しさん:2004/02/25 20:30
  やりたいコマンドメモ帳に書き出して .bat で保存しる.

  588 :573:2004/02/25 20:45
  >>586
  そうですね.
  「優しく解る!図解MS-DOS]見てます.
  後, 「MS-DOSVer.6.2ハンドブックPC-9800シリーズ」
  とかWindows XP/2000/ME/98SE DOS/コマンドプロント辞典があります.
  >>587
  ちょっと挑戦してみます.

  589 :デフォルトの名無しさん:2004/02/26 01:01
  unified 形式って何ですか?-cとは違うんですか?

  590 :589:2004/02/26 01:02
  誤爆スマソ.

  591 :デフォルトの名無しさん:2004/03/01 00:15
  00.jpgというファイルを00YYMMDDhhmmss.jpgみたいな感じで.
  1秒毎にファイル保存していきたいのですが,
  そのバッチファイルを作って下さい.
  お願いします.

  592 :デフォルトの名無しさん:2004/03/01 00:53
  >>591
  バッチファイルを作るのは貴方です.
  ここは貴方が作っている最中に.
  分からなくなった所を聞くスレです.
  なにが分からないのですか?

  593 :デフォルトの名無しさん:2004/03/01 01:06
  >>592
  指定したファイルを保存するところかな〜.

  594 :デフォルトの名無しさん:2004/03/01 01:19
  >>593
  hhじゃなくてhでいいなら.
  copy %1 "%~n1%date:~4, 2%%date:~7, 2%%date:~10, 2%%time:~0,
  2%%time:~3,2%%time:~6, 2%%~x1"

  595 :デフォルトの名無しさん:2004/03/01 16:49
  ある段階の作業でストップさせ, また残りの続きをさせるにはどういう命令を書けばいいんでしょうか.
  XP付きのブータブルISOを自動でつくるバッチなんですが.
  自分の環境では1ファイルを大文字にしないとエラーが出てしまうので, イメージにするまえにsp1当てた段階で一度止めたいんです.

  596 :デフォルトの名無しさん:2004/03/01 16:50
  XPsp1付きのブータブルISOです. スマソ.

  597 :デフォルトの名無しさん:2004/03/01 17:49
  pause

  598 :デフォルトの名無しさん:2004/03/01 21:05
  >>595
  素直にバッチファイルを2つに分けてはどうか.

  599 :デフォルトの名無しさん:2004/03/02 16:03
  リモートシェルコマンドで戻り値が返ってくるのですが,
  どうやって受け取ったらよいでしょうか?
  rsh hostname -l user -n command >hoge.txt
  上記のコマンドだと,
  hoge.txtにはリモートで実行したコマンド(command)の結果が書き込まれてしまうようです.
  よろしくお願いします.

  600 :599:2004/03/03 21:01
  >>599
  > リモートシェルコマンドで戻り値が返ってくるのですが,
  > どうやって受け取ったらよいでしょうか?
  > rsh hostname -l user -n command >hoge.txt
  >
  > 上記のコマンドだと,
  > hoge.txtにはリモートで実行したコマンド(command)の結果が書き込まれてしまうようです.
  >
  > よろしくお願いします.
  >
  ERRORLEVELで取得出来ました.

  601 :デフォルトの名無しさん:2004/03/03 21:13
  バッチファイルの引数を「%~1」で受けているのですが,
  Win2000Proでは問題ないのですが, WinNT4.0Serverでは引数が取得できません.
  引数の修飾子「~」はNTではサポートされていないのでしょうか?
  ご存じの方いましたら, 教えてください.
  もうひとつ,
  下記ソースはWinNT4.0Serverではエラーになってしまいます.
  for /F "tokens=1, 2, 3 USEBACKQ" %%A in (`find /V /C ""log1.txt`) do set
FL=%%C
  if %FL% == 0 goto NG
  set /A TAIL=%FL%-1
  more +%TAIL% log1.txt >log2.txt
  log1.txtの最後の1行の内容をlog2.txtに出力します.
  Win2000Proだと問題ないのですが, WinNT4.0Serverだと.
  「USEBACKQの使い方が誤っています」と表示されます.
  こちらもご存じの方いましたら教えてください.
  よろしくお願いします.

  602 :デフォルトの名無しさん:2004/03/03 21:38
  Q1 exeを実行するにはどう書けばいいですか?
  Q2 キーを押す(例えばF1を押したようにしたい)にはどう書けばいいですか?

  603 :デフォルトの名無しさん:2004/03/03 22:06
  標準入力に相当する物が見あたらないのですが,
  バッチファイル同士でパイプを使うことはできるんでしょうか?

  604 :デフォルトの名無しさん:2004/03/03 23:04
  >>601
  NTのヘルプに載ってなければ無理なんじゃないの.
  >>602
  A1. たとえばC:\Windows\Calc.exeと書けば電卓が実行される.
  A2. たぶん無理. キーを押すというのはメッセージを送れば実現できるけどそれはC言語とかでプログラムを作るしかない.
  WSHではできるのかな?
  >>603
  普通にできるはずだけど.

  605 :デフォルトの名無しさん:2004/03/04 09:16
  >>603
  > バッチファイル同士でパイプを使うことはできるんでしょうか?
  command /c batch1 | command /c batch2

  606 :デフォルトの名無しさん:2004/03/04 12:36
  >>604
  やっぱりむりですか・・・.
  では%1で受けた値の両端のダブルクォーテーションを取るにはどうしたら良いのでしょうか?

  607 :603:2004/03/04 13:40
  >>605, 604
  ありがとうございます.
  バッチ同士の部分は分かりました.
  (バッチファイルへの引数は%1で受け取れるようなのですが, )
  command /c batch1 | command /c batch2
  としたときに.
  batch2側でbatch1の標準出力を受け取るにはどうしたらいいのでしょうか?
  (
  %??に相当する物が存在せず,
  copy [con] , set , 一時ファイル 等を使う方法しかないのでしょうか?
  )

  608 :デフォルトの名無しさん:2004/03/04 15:03
  >>607
  バッチ内でパイプを受け取れるコマンドを使えばいい.

  609 :デフォルトの名無しさん:2004/03/04 15:06
  凝ったことしたければバッチファイルあきらめてPerlとかCygwinとか使った方がいいよ.

  610 :デフォルトの名無しさん:2004/03/05 00:37
  >609
  ここは, そこを敢えてバッチファイルでやって玉砕するスレではないか.

  611 :デフォルトの名無しさん:2004/03/05 03:01
  >>607
  forでいけるんじゃない?
  テキストファイル読み込んだりとファイル操作できるし.

  612 :デフォルトの名無しさん:2004/03/06 17:38
  教えて君でもうしわけないんですが, AドライブのFDからWordを起動する.
  パスを作りたいのですが, できません.
  これじゃーだめみたい.
  A:\>a:bas\C:\WINDOWS\APPLIC~1\MICROS~1\INSTAL~1\{00010~1\WORDICON.EXE

  613 :デフォルトの名無しさん:2004/03/06 17:45
  実行ファイル名は winword.exe じゃないのかなぁ.
  試してないけどこんな感じとか.
  "C:\Program Files\Microsoft Office\Offic\winword.exe"

  614 :612:2004/03/07 00:26
  A:\>a:bas"C:\Program Files\Microsoft Office\Offic\winword.exe"
  コマンドまたはファイル名が違います.
  A:\>a:bas\"C:\Program Files\Microsoft Office\Offic\winword.exe
  コマンドまたはファイル名が違います.
  A:\>"C:\Program Files\Microsoft Office\Offic\winword.exe"
  コマンドまたはファイル名が違います.
  3パターン試しましたがだめだったよです. ショボーン.

  615 :デフォルトの名無しさん:2004/03/07 00:29
  パス名の途中がOffic になっているんだけど. w.

  616 :デフォルトの名無しさん:2004/03/07 00:54
  > "%ProgramFiles%\Microsoft Office\Office\Winword.exe"

  617 :612:2004/03/07 00:57
  >>615
  あ・・・・気が付きませんでした. Officeに直したら出来ました.
  >>613
  どうも有難う御座いました.

  618 :デフォルトの名無しさん:2004/03/07 00:58
  >>616
  なるほど. その環境変数は知らなかったよ.
  ところで(システム|ユーザ)環境変数やらコマンドの動作の違いをOSのバージョンごとに.
  まとめているサイトとか知りませんが?

  619 :612:2004/03/07 01:13
  >>616
  すみません.
  やってみました. どこがおかしいのでしょう?
  A:\>"%ProgramFiles%\Microsoft Office\Office\Winword.exe"
  コマンドまたはファイル名が違います.

  620 :デフォルトの名無しさん:2004/03/07 01:17
  >>619
  OSのバージョンによっては環境変数 ProgramFiles が定義されていないかもしれないね.
  set
  または.
  set | find "ProgramFiles"
  で ProgramFiles= で始まる行が表示されるかどうか確認してみては?

  621 :612:2004/03/07 01:34
  >>620
  有難う御座います.
  確認してみます.

  622 :612:2004/03/07 02:01
  OSはWin98SEです.
  ちょっと確認してみました.
  こんな感じです.
  Microsoft(R) Windows 98
  (C)Copyright Microsoft Corp 1981-1999.
  C:\WINDOWS>set | find "ProgramFiles"
  C:\WINDOWS>set
  TMP=c:\windows\TEMP
  TEMP=C:\windows\TEMP
  PROMPT=$p$g
  winbootdir=C:\WINDOWS
  COMSPEC=C:\WINDOWS\COMMAND.COM
  PATH=C:\WINDOWS;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRA~1\COMMON~1\AUTODE~1:\D
  ;C:\JAVA;C:\PROGRA~1\COMMON~1\AUTODE~1:\DOS;C:\APP\JAVA\BIN;C:\JDK1.3\BIN;C:\P
  GRA~1\COMMON~1\AUTODE~1
  windir=C:\WINDOWS
  BLASTER=A220 I5 D1 T4
  CMDLINE=find "ProgramFiles"
  C:\WINDOWS>

  623 :デフォルトの名無しさん:2004/03/07 02:08
  ということで, Win98では  %ProgramFiles% は使えないことがわかったですか?

  624 :612:2004/03/07 02:13
  >>623
  ども, すいません.

  625 :デフォルトの名無しさん:2004/03/07 11:18
  関係ないが, 612のJava環境のインストール状況が気になる.

  626 :デフォルトの名無しさん:2004/03/07 12:19
  > C:\PROGRA~1\COMMON~1\AUTODE~1:\D
  AUTODE~1 って AutoCadか?
  コロンが含まれているから無効なパスに見えるが.

  627 :デフォルトの名無しさん:2004/03/07 23:22
  すいません. Dドライブからのパスです.
  うpしたのでこれでいいのか, 分かりません.
  HPに説明とパスがあります. でも, Dドライブから実行したいので・・・.
  http://ptba2.hp.infoseek.co.jp/cgi-bin/up/obj/obj2321_1.jpg

  628 :デフォルトの名無しさん:2004/03/08 00:14
  ・・・しっちゃかめっちゃかな設定だな・・・.

  629 :デフォルトの名無しさん:2004/03/08 00:23
  >>627
  「path %path%」の部分が不要.
  それと>>626の言う通り,
  「C:\PROGRA~1\COMMON~1\AUTODE~1:\DOS;」
  の部分がおかしい. (「:\DOS」の前にセミコロン;とドライブ名が抜けてる?)
  アセンブラやる前にもう少しDOS(コマンドプロンプト)の勉強もした方が.
  良いんではないかと・・・.

  630 :627:2004/03/08 12:28
  >>629
  ども・・・・.
  おっしゃるとおり, DOSの勉強を進めていったほうが良いですね.
  >「C:\PROGRA~1\COMMON~1\AUTODE~1:\DOS;」
  うーん・・・これは, 私にも分かりません.
  AuotCAdは, 普通にCDからのインストールをしたので.
  私は, そのような記述をしてません. (それ以前にわからないです. )
  AuotCAdは, 使ってないからアンインソトールしました.
  その記述部分を削ってもいいって事でしょうか?

  631 :デフォルトの名無しさん:2004/03/09 13:19

  632 :m.s:2004/03/09 16:46
  C言語でソースプログラムをコンパイルするという一連の流れの中でアセンブルの後の「リンク」とはいったい何をしているのか教えてください.
  できるだけ詳しく.優秀なプログラマーさんお願いします.

  633 :デフォルトの名無しさん:2004/03/09 21:43
  スレ違い  wdic.orgで調べれ.

  634 :デフォルトの名無しさん:2004/03/09 23:03
  OSの種類によってバッチ・ファイルの処理を切り替える方法.
  http://www.atmarkit.co.jp/fwin2k/win2ktips/267swchos/swchos.html
  http://www.atmarkit.co.jp/fwin2k/win2ktips/267swchos/table.html

  635 :デフォルトの名無しさん:2004/03/10 14:18

  636 :デフォルトの名無しさん:2004/03/10 19:30

  637 :デフォルトの名無しさん:2004/03/11 00:45
  急で申しわけないですが, Win98SEにSYMDEBを利用してCOMファイルを作成したい.
  のですが, 手元にある書物がNECの「PC-9801シリーズ」を対象にしてるので.
  記述どおりの事をやっても出来ません.
  私のOSでは無理なんでしょうか?

  638 :デフォルトの名無しさん:2004/03/11 14:39
  >>637
  どこがどうできないのかくらい書けや.

  639 :デフォルトの名無しさん:2004/03/11 21:09
  >>630
  不要ならその部分を削除しても問題なし.
  >>637
  スレ違いだ. こっちで聞け[下矢印]
  機械語なら俺に質問しろ!
  http://pc2.2ch.net/test/read.cgi/tech/1035288252/l50
  自分の使ってる環境や本の名前をもっと具体的に書かないと.
  まともに答えてもらえないぞ.

  640 :デフォルトの名無しさん:2004/03/12 04:51
  >>634
  Win9xはC:ドライブ固定ですかそうですか.

  641 :デフォルトの名無しさん:2004/03/13 15:06
  >>640
  しかも>>634の一覧表のWin98で%comspec%は.
  C:\WINDOWS\COMMAND.COM
  なのに一番下の実例では.
  @echo off
  if "%comspec%"=="" goto unknown
  if "%comspec%"=="c:\command.com" goto Win9x
  if "%comspec%"=="%systemroot%\system32\cmd.exe" gotoWinNT
  ガクガクブルブル.
  %WINDIR%\COMMAND.COMにしろよ.

  642 :デフォルトの名無しさん:2004/03/14 17:13
  以下のファイル(TREG.ini)を編集したり, 参照したりするバッチ(TREG.bat)
  を作ったのですが, 編集処理(ラベル :DEBUG, :HISTORY, :SIZE, :SENDMSG)の.
  あと, :FIN->:EOFとしているのですが, なぜか:EOF->:FINとgotoされてしま.
  います.
  問題はどこでしょうか??
  ///TREG.ini
  ###############################################;
  # 定義ファイル #;
  ###############################################;
  HISTORY=10;
  SIZE=101376;
  DEBUG=on;
  SENDMSG=*;

  643 :treg.bat 1/4:2004/03/14 17:15
  @echo on
  setlocal
  set WORKDIR=%~dp0
  :****************************************
  if /i "%1"=="/?" (goto :INFO
  ) else if /i "%1"=="/D" (@set PRM1=DEBUG
  ) else if /i "%1"=="/H" (@set PRM1=HISTORY
  ) else if /i "%1"=="/S" (@set PRM1=SIZE
  ) else if /i "%1"=="/M" (@set PRM1=SENDMSG
  ) else if /i "%1"=="/V" (goto :VIEW
  ) else (goto :ERORR)
  set PRM2=%2%
  goto :%PRM1%
  :****************************************
  :DEBUG
  if /i "%PRM2%"=="ON" (call :GET_INI
  )else if /i "%PRM2%"=="OFF" (call :GET_INI
  )else (goto :ERORR)
  :_DEBUG
  goto :FIN

  644 :treg.bat 2/4:2004/03/14 17:15
  :****************************************
  :HISTORY
  set /a PRM2=%PRM2%/1
  if errorlevel 9163 goto :ERORR
  if /i %PRM2% GTR 100 (goto :ERORR
  ) else if /i %PRM2% LSS 0 (goto :ERORR)
  call :GET_INI
  :_HISTORY
  goto :FIN
  :****************************************
  :SIZE
  set /a BUFFER=%PRM2%/1
  if errorlevel 9163 goto :ERORR
  if /i %PRM2% GTR 1000 (goto :ERORR
  ) else if /i %PRM2% LSS 10 (goto :ERORR)
  set /a BUFFER=%PRM2%
  set /a PRM2=%PRM2%*1024-1024
  call :GET_INI
  :_SIZE
  set /a PRM2=%BUFFER%
  ECHO !!
  goto :FIN

  645 :treg.bat 3/4:2004/03/14 17:16
  :****************************************
  :ERORR
  echo オプションが不適当です.
  :****************************************
  :INFO
  echo 形式:TREGini [/d {0〜100}] [/h {10〜1000}] [/d {on^|off}] [/m
  compute名][/?][/v]
  goto :END
  :****************************************
  :VIEW
  type %WORKDIR%TREG.INI
  goto :END
  :****************************************
  :FIN
  del %WORKDIR%TREG.BAK
  echo %PRM1%=%PRM2% に変更しました.
  :END
  goto :EOF

  646 :treg.bat 4/4:2004/03/14 17:17
  :****************************************
  :GET_INI
  rename %WORKDIR%TREG.INI TREG.BAK
  for /f "tokens=1 delims=;" %%a in (%WORKDIR%TREG.BAK) do (@setLINE=%%a&& call
  :GET_SUB)
  goto :_%PRM1%
  :****************************************
  :GET_SUB
  for /f "eol=# tokens=1, 2* delims= " %%c in ('ECHO %LINE%') do(@set HEAD=%%c&&
  @set VALUE=%%d)
  if /i "%HEAD%"=="%PRM1%" set VALUE=%PRM2%
  if /i "%HEAD%"=="%PRM1%" set LINE=%HEAD%^=%VALUE%
  echo %LINE%; >> %WORKDIR%TREG.INI
  set LINE=
  set HEAD=
  set VALUE=

  647 :642:2004/03/14 17:24
  申し送れましたが, Windows2000 Pro SP4 環境です.

  648 :デフォルトの名無しさん:2004/03/14 17:46
  >>642
  長いんでよく見てないが, :GET_INI の最後は.
  goto :_%PRM1% -> goto :EOF
  では?

  649 :sage:2004/03/14 21:10
  >>648さん, 642です.
  :SIZEの処理の場合は, set /a PRM2=%BUFFER%の処理を行うために.
  また, :FINで変更が行われたことを表示させることも行うために.
  goto :_%PRM1%としています.

  650 :642:2004/03/14 21:10
  上げてしまった・・・.

  651 :デフォルトの名無しさん:2004/03/14 21:52
  >>649
  call の使い方はちゃんと理解してる?
  CALL :ラベル 引数.
  指定された引数で新しいバッチ ファイル コンテキストが作成され, 指定.
  されたラベルの次の文に制御が渡されます. バッチ スクリプト ファイルの.
  最後に 2 回到達することによって, 2 回 "終了" する必要があります.
  1 回目に最後に到達したときには, 制御は CALL 文の次の行に返されます.
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2 回目に, バッチ スクリプトが終了します. バッチ スクリプトから "戻る"
  ための GOTO :EOF 拡張機能の説明については, GOTO /? と入力してください.
  @echo off
  call :label_c
  call :label_b
  call :label_a
  goto :EOF
  :label_a
  echo aaa
  goto :EOF
  :label_b
  echo bbb
  goto :EOF
  :label_c
  echo ccc
  goto :EOF

  652 :642&649:2004/03/15 23:24
  >>651
  適切なご指摘ありがとうございます.
  肝心なところを理解していませんでした.
  以下のように変更し, 正常動作を確認しました.
  :****************************************
  :GET_INI
  rename %WORKDIR%TREG.INI TREG.BAK
  for /f "tokens=1 delims=;" %%a in (%WORKDIR%TREG.BAK) do (@setLINE=%%a&& call
  :GET_SUB)
  goto :EOF

  653 :デフォルトの名無しさん:2004/03/19 22:32
  質問です.
  バッチファイル中でスリープってできないんですか?
  10秒(厳密でなくても可)だけ待ちたい.
  次のようなことを思いついたが, なんかきれいではないような気がして, , ,
  WSHでスリープしそれをcall
  CでもJavaでもスリープするだけのプログラムを作りそれをcall

  654 :デフォルトの名無しさん:2004/03/20 01:53
  @echo off
  choice /c:x /t:x, 10 | echo.
  x押されたらどうしょうもないけど  ついでにNT系はchoiceなかったっけ.

  655 :デフォルトの名無しさん:2004/03/20 03:54
  漏れは 某所の deltree.exe と choice.exe をいれているがな.

  656 :653:2004/03/20 08:28
  653です.
  ありがとうございます.
  choiceをそういう目で見れたことはありませんでした.
  98SEでは思い通りにいきましたが, やはり2kでは無理でした.
  何で同等のコマンドがないんでしょう?
  [下矢印]ここは確認しましたが, 別途ツールでも無理ですね.
  http://forum.nifty.com/fpcu/dosvcmd/choice.htm

  657 :デフォルトの名無しさん:2004/03/20 10:00
  http://www.vector.co.jp/soft/win95/util/se282254.html とか入れればいいだけじゃないのか ?

  658 :デフォルトの名無しさん:2004/03/20 10:03
  %time%の秒の部分が10回変化したら.

  659 :653:2004/03/20 18:48
  レスありがとうございます.
  >657
  ネイティブのバッチ(用語的に正しい?)以外は環境的に厳しいのです.
  本当は詳細な環境要件があるんですけれども省略させてください.
  あとプログラマとしての探求的なものもあるんですけどね.
  >658
  なるほど.
  作ってみました.
  @ECHO OFF
  SET SS=%TIME:~6, 2%
  SET MYCNT=0
  :LOOP
  SET NOW=%TIME:~6, 2%
  IF %SS%==%NOW% GOTO :NOTCNT
  SET /A MYCNT=MYCNT+1
  SET SS=%NOW%
  GOTO :NOTCNT
  :NOTCNT
  IF %MYCNT%==10 GOTO :END
  GOTO :LOOP
  :END
  最後のif文の数字で秒数変更できます. 引数にしたほうが汎用的ではあります.
  何行かスリムにもできますが, ロジック的には以上ということで, , ,

  660 :正直, バッチでビット演算子まで使えるとは知らなかったよ.:2004/03/20 22:10
  > GOTO :NOTCNT
  > :NOTCNT
  とか.
  > IF %MYCNT%==10 GOTO :END
  > GOTO :LOOP
  > :END
  とかわざわざわかりにくく書かなくてもいいと思うぞ.
  @ECHO OFF
  SET SS=%TIME:~6, 2%
  SET MYCNT=0
  :LOOP
  SET NOW=%TIME:~6, 2%
  IF %SS%==%NOW% GOTO :LOOP
  SET /A MYCNT=MYCNT+1
  SET SS=%NOW%
  IF %MYCNT% LEQ 10 GOTO :LOOP
  ぐらいで充分かと. あとお行儀的には, setlocal/endlocal で括るといいかも.

  661 :デフォルトの名無しさん:2004/04/11 18:48

  662 :デフォルトの名無しさん:2004/04/13 00:49
  すいません. こんなバッチファイルがあったらなーと思う物があります.
  ある特定のフォルダにあるファイル郡のなかから*.txtというファイルのみを.
  同名で保存する. つまり更新日時のみ最新になるという風なバッチファイルは.
  どのようにすればよいのでしょうか?同名ファイルにリネームすればよいとは.
  思うのですが, ファイルを検索するのはどのようにすればよいのでしょうか?
  (for文?)ご教授お願いします.

  663 :デフォルトの名無しさん:2004/04/13 01:23
  質問です.
  リダイレクトを使ってバッチ処理のログを保存していますが,
  普通に command > hoge.txt ってやると画面上には出力されなくなってしまいますよね.
  画面上にも出力して, ファイルにも(同時に)保存って出来ます?
  ant > build.log & type build.log
  ってのもなんだか・・.

  664 :デフォルトの名無しさん:2004/04/13 21:52
  >> 663
  それは無理. バッチ, echo, 標準コマンドはstdoutなので.
  リダイレクトされてしまう.
  解決策としてはリダイレクトを使わない方法をとる.
  たとえばxtr, sed/awk, tcl/ckのようなスクリプト言語を組み合わせる.
  あるいは別の言語で組むのが良いかと. 一番簡単なのは.
  コンソールロギングツール. 例をいえばXscriptを.
  使うことなんだけどAT版は無い.

  665 :デフォルトの名無しさん:2004/04/13 22:04
  >> 663
  バッチ単体では無理だね. 最低でも正規表現ツールやら.
  Batch Jack, Basic Preprosessor(BPP), BU必携.
    そういうのはバッチではなくawk/perlなどのスクリプト言語で.
  組んだほうが楽だよ. おそらく, どんどん機能追加していきたくなるからね.
    かくいうオレはバッチでInput Method組んだことがあるが.
  500行くらいになるとスパゲッティになってメンテできなくなる.
  いくら変数を構造体変数風(e.g. set global.line.editmode)に.
  してもBATCPのongoto〜return使おうがbppで分割しようが状況は改善しない.
  って今, そいつを他の言語で移植すべく分析で苦労している.
  ああ. バッチでOO使える方法(海外サイトを検索してみよう)はあるんだが.
  さすがにソース分割や構造化プログラミングを組み合わせると.
  もはやバッチとはいえなくなってしまう. 長いので以下略.

  666 :デフォルトの名無しさん:2004/04/13 22:20
  >>663
  標準出力をファイルに保存するだけなら tee を使うと簡単.
  dir | tee -a hoge.log
  http://www.vector.co.jp/soft/winnt/util/se014671.html
  http://www.vector.co.jp/soft/dl/win95/util/se033318.html

  667 :デフォルトの名無しさん:2004/04/13 22:21
  [上矢印]ダミアソ.

  668 :663:2004/04/13 23:28
  やはり駄目ですか・・・.
  dir > con > hoge.txt
  con < dir > hoge.txt
  とか色々やってしまった. ハズカシイ.
  >>666
  tee イイ!
  こーゆー事がしたかったんです!thx!

  669 :デフォルトの名無しさん:2004/04/18 11:25
  DISP.DATってファイルはWin98SEでは, 作れないのでしょうか?
  この人のHPにはそれらしき事が書いてあるのですが.
  http://homepage1.nifty.com/NAKAYA/20030623.htm

  670 :デフォルトの名無しさん:2004/04/18 11:27
  >>669
  内容全然読んでないけど, 「DISP. DATとういうファイルを作ります」なんて全角で書いてる時点で, 俺なら信用しない.

  671 :699:2004/04/18 19:00
  >>670
  えーっと・・.
  申し訳ありません. 「DISP.DAT」ですか?
  そこまで気が付きませんでした.
  ちょっとそのHPのソースをCでコンパイルしたらエラーになりました.

  672 :699:2004/04/18 19:01
  {
  for (i=1;i<=NF;i++){
  if ($i=="全<長さ"){
  len=$(i+2);
  writeSw=1;
  }
  if ($i=="[ネット名") net=$(i+1);
  sub("]", "", net);
  if (sub("+", "", net)==1) net=net "+";
  if (sub("/", "", net)==1) net=net "/";
  }
  if (writeSw==1) print net " , " len > "temp.000";
  writeSw=0;
  }
  END{
  system ("ssort < temp.000 > netlen.csv");
  }

  673 :699:2004/04/18 19:02
  E:\c\Bin>bcc32 dos1.c
  Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
  dos1.c:
  エラー E2040 dos1.c 1: 宣言が正しく終了していない.
  エラー E2206 dos1.c 3: 不正な文字 '$' (0x24)
  エラー E2206 dos1.c 4: 不正な文字 '$' (0x24)
  エラー E2206 dos1.c 7: 不正な文字 '$' (0x24)
  エラー E2206 dos1.c 7: 不正な文字 '$' (0x24)
  *** 5 errors in Compile ***
  E:\c\Bin>

  674 :デフォルトの名無しさん:2004/04/18 20:07
  >>671
  HPの中身読んでないだろ・・・.
  DISP.DATはDREAMCADっていうソフトで作成するんだろ?
  しかも, そのスクリプトってDISP.DATに全然関係なくて,
  Cじゃなくてawkのスクリプトなんだが・・・.
  もしかして, 俺釣られてる?

  675 :699:2004/04/18 21:11
  >>674
  すみませんでした.
  違うスレに逝ってきます.

  676 :デフォルトの名無しさん:2004/04/18 21:20
  一体どのスレでどんな風に質問する気なのか, 非常に気になる.

  677 :699:2004/04/18 21:41
  やっぱりこの質問は, 2ちゃんでは止めときます.
  さよなら〜〜〜〜〜〜〜〜.

  678 :デフォルトの名無しさん:2004/04/19 21:08
  Windows98 上で動かすバッチファイルで SET コマンドを使ったとき,
  イコール記号を含む文字列を変数に入れようとすると, 「構文が違います」と言われてしまいます.
  イコールを含むようなものは代入できないのでしょうか.
  例 SET HOGE="ABC=DEF"

  679 :デフォルトの名無しさん:2004/04/19 22:39
  >> 678
    対策としてBU使ったらどうかな?
  上は構文エラーになる. =はどこがトークンか判断できないからね.
  ちなみに""で括っても意味はないよ.
  バッチでは変数はすべて文字列で評価されるからね.

  680 :デフォルトの名無しさん:2004/04/27 14:08
  >>662
  touchでも使え.

  681 :デフォルトの名無しさん:2004/05/01 00:12
  バッチ・ファイル中で日付をファイル名に使用する.
  http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

  682 :682:2004/05/01 01:12
  このバッチファイルのどこがおかしいか教えてください.
  REM カレントディレクトリにある拡張子がTXTのファイルをフロッピーにコピーするバッチファイル.
  @ECHO OFF COPY *.TXT A:\ >NUL
  実行した結果ですが, MS-DOS アプリケーションへのショートカット(me)
  が出来てるだけ・・・・.
  C:\My Documents>me
  C:\My Documents>REM カレントディレクトリにある拡張子がTXTのファイルをフロッピー.
  にコピーするバッチファイル.
  C:\My Documents>

  683 :デフォルトの名無しさん:2004/05/01 01:47
  echoとcopyを別の行に分けたら.

  684 :デフォルトの名無しさん:2004/05/01 03:25
  >> 682
    ついでにremの位置も間違えていますよ.
  @echo off(DOS3ではecho off)はバッチファイルの一行目が定石です.
  文字列表示したいならechoを使いましょう.
  echo.で空白行にもなります.
  なお, remはラベルで代用して使うこともできます.
  そのさい, 既存のラベル(gotoで使用するもの)と.
  衝突しないように注意してください.
  e.g.)
  :: これはコメントですよ.
  その他, goto〜:labelの空白行をコメント領域として使うことができます.
  BatchJack使えばコメントをC++風に置けるんですが.
  Preprocessor使うのは面倒ですよね.
  e.g.)
  goto label
  コメント・・・いや, その件は.
  :label
  最後にプログラミングのドツボはつまらないコーディングミスが大半です.
  詰まったら, しばらく忘れて他のことでもしましょう.

  685 :デフォルトの名無しさん:2004/05/01 03:45
  バッチファイルで  「キーを押すとそのアスキーコードを表示するプログラム」  できまつか?
  よろしくおながいしまつ.

  686 :デフォルトの名無しさん:2004/05/01 05:45
  >> 685
    ScanCode? 可能だよ. xtrかBUを使いましょう.
  ただし, AT互換機の場合は特殊キーは2バイトキーコードなので.
  1バイト目がNULL(0)であれば2バイト目を読む必要がある.
  例)BUによるGetchの例.
  (xtrの場合はコード変換が入るが, 基本は同じ.
  面倒ならTurbo C2.0のgetch関数を使って作成...
  変数ふたつと条件分岐だけで作成可能)
  @echo off
  bu -e -nBYTE1 keycode
  if "%BYTE1%"=="0" bu -e -nBYTE2 keycode
  bu echo %BYTE1%
  if not "%BYTE2%"=="" bu echo %BYTE2%
  echo\
  set BYTE1=
  set BYTE2=
  それとScanCode表はWindows9x付属の文字コード表を参考にしましょう.
  (まあ, !〜~の範囲をデシマルで出力すればいいんだけどね)

  687 :682:2004/05/01 10:03
  >>683-684
  有難う御座います.
  ちょっと, 訂正して実行しました.
  @ECHO OFF カレントディレクトリにある拡張子がTXTのファイルをフロッピーにコピーするバッチファイル.
  REM
  COPY *.TXT A:\ >NUL
  C:\My Documents>REM
  C:\My Documents> COPY *.TXT A:\ >NUL
  準備ができていません. 読み取り中 ドライブ A:
  中止 (A), 再試行 (R), 失敗 (F)?r
  C:\My Documents>
  C:\My Documents>
  これが参考にしてる結果です.
  同じですか?
  REM 処理確認してコピーする ECHO このディレクトリの中にあるTXTファイルをフロッピーにコピーします.
  ECHO ディスクをドライブにセットしてからどれかキーを押してください.
  PAUSE >NUL
  COPY *.TXT A:\

  688 :685:2004/05/01 12:56
  >686
  tan x.
  MS-DOS附属の BATKEY.COM しかないんでつが. . .

  689 :reboot.asm:2004/05/01 15:06
  >204
  CODE segment
  assume cs:CODE, ds:CODE
  org 100h
  START: mov ah, 4ch ; B4 4C ;エL
  int 21h ; CD 21 ;ヘ!
  CODE ends
  end START
  errorlevel をリセットするコマンド?

  690 :デフォルトの名無しさん:2004/05/01 16:30
  1. ftpでデータを取得するバッチファイルを動的に作成(temp.bat)
  2. shellでtemp.batを起動. (プロセスIDをとって, 終了まで待機)
  3. 数分おきに繰り返す.
  というようなプログラムを作ってます.
  ところがまれにcmd.exeが終了せずに処理が止まってしまいます.
  そこで, 途中で止まっているtemp.batを.
  強制終了させたいのですが, どうすればよいのでしょう?
  calc.exeを起動して, 終了させるサンプルプログラムを.
  使ってもうまくいきません.
  (calc.exeのかわりにtemp.batを起動・終了させようとしても.
  起動するだけで終了しません)
  「ftp」とだけ記述されたバッチファイルを.
  起動・終了させる例を示していただけると助かります.

  691 :690:2004/05/01 16:32
  [上矢印]ソフト本体はvb6でつくってます.
  ここに書き込むのが適当なのか分かりませんが,
  よろしくお願いします.

  692 :デフォルトの名無しさん:2004/05/01 16:52
  690 スレ違い|マルチ.
  氏ね.

  693 :690:2004/05/01 18:04
  デフォルトの名無し様.
  すみませんでした. 失礼します.

  694 :686:2004/05/01 21:46
  >688
    すみません. リンク提示をしていませんでした.
  その他便利なツール紹介も含めて提示します.
  - BU / BATCP (バッチで使えば便利なツール)
  http://hp.vector.co.jp/authors/VA000007/
  - BPP (Basic用のプリプロセッサ. モジュール単位での分割などができます.
  バッチでも使えます)
  http://www.noktosoft.com/
  - BJ (バッチで構造化プログラミング. でも生成ソースに難がある)
  http://www.vector.co.jp/soft/dos/util/se000464.html
  - xtr (文章整形ツール. 未完成で終ってしまって悲しい)
  http://www.asahi-net.or.jp/~fe3s-mrkm/blind/xtr.htm
  - BAT->C/C++トランスレーター.
  http://www.spacesoft.co.jp/
  - Turbo C(参考資料)
  http://hp.vector.co.jp/authors/VA003720/lpproj/special/borland/

  695 :684:2004/05/01 21:49
  >> 687
    ECHOの文末を改行(端末設定がおかしいのかな?)していない以外は,
  それで大丈夫です.
  可能であればエラー処理を入れておいたほうがいいです.
  ただ, それをやろうとするとほかのツールを使う必要があります.
  今は, まだいいかと存じます.
  一応, バッチファイル関連のサイトを提示しておきます.
  http://www25.cds.ne.jp/~kamiken/bach/bach.html

  696 :デフォルトの名無しさん:2004/05/01 22:06
  >690
  ぉぃぉぃ. この程度でVB使うなんてへっぽこ趣味PGの.
  オレですら考えられないんだが.
  どんなプログラム書いているんだかと小一時間問い冷たく(snip)
  ってか, ここで質問するならBSLかWinbatchEh関連で質問したほうがいいかと.
  一応バッチ系統の言語なんだからさ.
  BSL
  http://hp.vector.co.jp/authors/VA013722/

  697 :682:2004/05/01 23:04
  >>695
  丁重なアドバイス, 有難う御座います.
  もうちょっと, 学習してみます.

  698 :685, 688:2004/05/01 23:23
  >>694
  丁重なアドバイス, 有難う御座います. . .
  もうちょっと, 学習してみます. . .

  699 :デフォルトの名無しさん:2004/05/02 12:54
  バッチファイルで  「errorlevelを10進表示するプログラム」  できまつか?
  よろしくおながいしまつ.

  700 :デフォルトの名無しさん:2004/05/02 18:59
  echo %errorlevel%って10進じゃないの?

  701 :デフォルトの名無しさん:2004/05/02 19:10
  10進だな.
  Win32ではリターンコードも32bitなんだな. 知らんかった.

  702 :デフォルトの名無しさん:2004/05/02 19:42
  >700
  ECHO は ON

  703 :デフォルトの名無しさん:2004/05/03 16:36
  >699
  [下矢印]にあるよ.
  自分で作ったプログラムを公開するスレ.
  http://pc5.2ch.net/test/read.cgi/tech/1076238917/41-42

  704 :682:2004/05/03 20:09
  >>695さん.
  そのHPの文字に色をつけるバッチファイルですが,
  @echo off
  @echo off [30mY [1;30mY [0m
  @echo off [31mY [1;31mY [0m
  @echo off [32mY [1;32mY [0m
  @echo off [33mY [1;33mY [0m
  @echo off [34mY [1;34mY [0m
  @echo off [35mY [1;35mY [0m
  @echo off [36mY [1;36mY [0m
  @echo off [37mY [1;37mY [0m
  echo.
  @echo off [40mY [0m
  @echo off [41mY [0m
  @echo off [42mY [0m
  @echo off [43mY [0m
  @echo off [44mY [0m
  @echo off [45mY [0m
  @echo off [46mY [0m
  @echo off [47mY [0m

  705 :682:2004/05/03 20:11
  結果です.
  A:\>
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  OFF
  A:\>

  706 :682:2004/05/03 20:14
  同じになりません.
  OSは, Win98SEです.
  98じゃないからですか?

  707 :デフォルトの名無しさん:2004/05/03 22:15
  いや, 「結果です」と言われても・・・.

  708 :デフォルトの名無しさん:2004/05/03 22:17
  >>704
  バイナリエディタで[の前が1Bになっているのを確認したか?
  @echo offは文頭に1つでいいだろ.
  >>705
  もしかしてコピペの仕方知らないの.

  709 :デフォルトの名無しさん:2004/05/04 18:28
  >>706
  使えると思うが, DOS/Vのファイル参照.
  http://www.mirai.ne.jp/~nave/lib/echo.htm

  710 :デフォルトの名無しさん:2004/05/05 00:46
  http://tv.yahoo.co.jp/vhf/tokyo/2004050423.html
  をブラウザで開くバッチファイルってどう書けばいいんですか?
  後ろの数字は年月日時で変わってきます.

  711 :デフォルトの名無しさん:2004/05/05 01:10
  >>710
  %date%を使う.

  712 :デフォルトの名無しさん:2004/05/15 22:06
  質問です.
  指定した複数のファイルやフォルダの容量を調べて.
  まとめた容量を表示するにはどうすればいいのでしょうか?

  713 :デフォルトの名無しさん:2004/05/15 22:09
  >>712
  for /?
  %~zI - %I ファイルのサイズに展開します.
  あとは足すだけ.

  714 :デフォルトの名無しさん:2004/05/15 22:11
  おまけ.
  set /?
  SET コマンドには, 2 つの新しいスイッチが追加されています:
  SET /A 式.
  SET /P 変数=[プロンプト文字列]
  /A スイッチは, 等号の右側の文字列が, 評価すべき数式であることを.
  指定します. 式の評価はごく単純で, 次の操作がサポートされます.
  操作は, 優先順位の高い順に示されています:
  () - グループ化.
  * / % - 算術演算子.
  + - - 算術演算子.
  << >> - 論理シフト.
  & - ビット演算子 AND
  ^ - ビット演算子排他的 OR
  | - ビット演算子 OR
  = *= /= %= += -= - 代入.
  &= ^= |= <<= >>=
  , - 式の区切り記号.

  715 :デフォルトの名無しさん:2004/05/16 00:12
  >>714
  cmd必死だな. w.

  716 :デフォルトの名無しさん:2004/05/16 20:31
  set で定義した変数は環境変数に追加されるんですか?ヘルプみてもわからなかったんで. スマソ.

  717 :教えてください:2004/05/17 23:27
  バッチファイルでバッチファイルを呼び出すと.
  一つ目しか実行しません.
  なんとかならないものでしょうか.

  718 :デフォルトの名無しさん:2004/05/17 23:40
  call YourBatch.bat

  719 :デフォルトの名無しさん:2004/05/17 23:50
  >>716
  SETは「環境変数を設定するコマンド」なんだが・・・.
  ただしNT系の場合, SETを使ったコンソールの中でのみ有効.
  9x系の場合は忘れた.
  >>717
  意味がよく分からんがとりあえず CALLを使え.

  720 :デフォルトの名無しさん:2004/05/18 00:16
  >>718 >>719
  ありがトン.
  これから試してみますね.

  721 :デフォルトの名無しさん:2004/05/18 08:25
  カレントディレクトリの9152バイトのファイルだけを削除するのってどうやるの?

  722 :でけた:2004/05/18 09:13
  @echo off
  rem メガネ男を削除する.
  setlocal
  set nydir=C:\bin\winny2b71
  :loop
  cd %nydir%\down
  for %%f in (*) do (
  if "%%~zf"=="9152" (
  echo deleting... %%~zf %%f
  del "%%f"
  )
  )
  cd %nydir%\cache
  for %%f in (*) do (
  if "%%~zf"=="9489" (
  echo deleting... %%~zf %%f
  del "%%f"
  )
  )
  rem もしcygwinが入っているなら.
  sleep 6 && goto loop

  723 :デフォルトの名無しさん:2004/05/18 23:06
  バッチファイルに.
  start http://www.asahi.com/
  start http://www.yomiuri.co.jp/
  って書くと, 当然ですが一つのブラウザが開いて読売のWebが.
  表示されておしまいです. そうではなくて, ブラウザが2つ.
  起動し, それぞれ朝日, 読売とWebが表示できるようにしたい.
  のですが, DOSのコマンドじゃ無理でしょうか?なにか上手い.
  方法ありませんか?

  724 :デフォルトの名無しさん:2004/05/18 23:10
  start explorer http://www.asahi.com/
  start explorer http://www.yomiuri.co.jp/

  725 :デフォルトの名無しさん:2004/05/18 23:22
  すいません.
  バッチファイル押下時に.
  ファイルに現在の時刻を出力するにはどうすればいいのでしょうか?
  またWindowsのシャットダウン時にその時間を出力させることは可能でしょうか?

  726 :デフォルトの名無しさん:2004/05/18 23:32
  723です. 724さん, すみません.
  ブラウザの種類を書き忘れました. デフォルトでNetscape Communicator 4.75以上を.
  使っている場合の話なんです. この場合はどのようにすればよいのでしょう.
  IEは対象外としてます.

  727 :デフォルトの名無しさん:2004/05/18 23:37
  >725
  date /T > aho.txt
  time /T >> aho.txt
  shutdown
  って書けばいいんでは?

  728 :デフォルトの名無しさん:2004/05/19 00:05
  指定されたフォルダの中の指定の容量以下のものを削除したいとき.
  また指定されたフォルダの指定の拡張子を削除させるには.
  それぞれどうすればいいのでしょうか.

  729 :デフォルトの名無しさん:2004/05/19 17:50
  バッチファイルで各プロセスのアクティブなサービスを表示させたいのですがうまくいかないので教えて下さい. OSは2000です.

  730 :デフォルトの名無しさん:2004/05/19 21:04
  すいません簡単な質問ですが.
  教えてください.
  ファイルに書き込む時改行しないで続けて横に書き込みたいときどうすればいいのでしょうか?
  たとえば.
  @echo off
  echo あいうえお.
  echo かきくけこ.
  こう書けば改行されますが.
  これを.
  あいうえお  かきくけこ.
  みたいにしたいのです.
  教えてください.

  731 :デフォルトの名無しさん:2004/05/19 21:51
  改行なしのechoなどない.
  変数にどんどん足していって一度にechoとかやるしかない.

  732 :デフォルトの名無しさん:2004/05/19 23:05
  >>728
  >指定されたフォルダの中の指定の容量以下のものを削除したいとき.
  >また指定されたフォルダの指定の拡張子を削除させるには.
  両方いっぺんに指定できるバッチ例 for 2000/XP(未検証スマソ)
  REM delfile.bat 指定フォルダ 指定ファイルサイズ [拡張子]
  @echo off
  set dir=.
  set size=0
  set ext=*
  if not "%1"=="" set dir=%1
  if not "%2"=="" set size=%2
  if not "%3"=="" set ext=%3
  for %%F in ( %dir%\*.%ext% ) do (
  if %%~zF LEQ %size% del %%F
  )
  >指定されたフォルダの指定の拡張子を削除させるには.
  これだけなら, 指定されたフォルダ(=c:\test) 指定の拡張子(txt)として.
  del c:\test\*.txt
  で済む罠.

  733 :デフォルトの名無しさん:2004/05/20 00:13
  >> 719
  追記しておくと, callつかわなくてもできるけど面倒だな.
  ちなみにDOS3以下ではcommand /c [batch.bat]でできるが.
  子プロセス側の環境変数は親プロセスに継承されない.
  >> 730
    C言語であればprintfでできます.
  バッチの場合はBU[>>694]を入手してprintfでやりましょう.
  >>731さんの方法では, 環境変数領域が不足することが考えられますので.
  お勧めしません. ただし. 表示個数が少ない, 環境変数領域を多めに.
  指定している場合は除きます.

  734 :デフォルトの名無しさん:2004/05/20 11:30
  BU入れるならWSHかCygwinのコマンド郡使ったほうがいいだろ.

  735 :デフォルトの名無しさん:2004/05/22 01:21
  バッチでコピー処理をしたいとき.
  ディレクトリ/ファイルの選択をしないようにするにはどうすればいいのでしょうか?
  たとえば.
  xcopy "C:\test\test1\testfolda" "D:\test\test1\testfolda/s
  とあるとき.
  それがファイルかディレクトリかをいちいち聞いてくるのですが.
  これを聞かれずに全部ディレクトリで流したいときどうすればいいのでしょうか?

  736 :デフォルトの名無しさん:2004/05/22 01:39
  >>735
  xcopy /?

  737 :デフォルトの名無しさん:2004/05/22 10:36
  >>735
  xcopy /i

  738 :デフォルトの名無しさん:2004/05/22 16:58
  よぉぉぉぉおおおおおおおおおおおおおおおおおし2げとずさー.
  記念age

  739 :デフォルトの名無しさん:2004/05/22 21:18
  [質問]バッチでchdirやpathコマンドを使用しても, バッチが終了すると元に戻ってしまいます.
  どうすればいいんでしょうか?WinXPのDOS窓でやってます.神様ご教授を.

  740 :デフォルトの名無しさん:2004/05/22 21:35
  >>739
  まさか, Explorerから起動してないよね?
  cmd.exe / command.comからではないと無理だよ.

  741 :デフォルトの名無しさん:2004/05/22 21:39
  >> 739
    おおまじぼけしてしまった.
  えっと, 無理なので. どうしてもやりたければstartコマンド.
  使ってください. CDはどうにかなるでしょう.
  pathの変更はコマンドライン終了したら保持されません.
  名前を指定して実行でパス入れるとフォルダ開けますね.

  742 :デフォルトの名無しさん:2004/05/22 21:43
  >>739
  MS-DOSの学習部屋.
  http://forum.nifty.com/from40pc/mit/command000.htm

  743 :デフォルトの名無しさん:2004/05/22 21:51
  ありがとうございます739です.
  [名前を指定して実行]でcommand.comを実行してDOS窓開いています.
  あるコマンドラインツール(コンパイラです)を使うために, ルートから,
  あるディレクトリに移行し, pathも追加したいのです. これをバッチでやり.
  たいのです. 毎回コマンドラインでやるのはあまりに大変ですので.
  よってcdもpathも, command.com終わらない限り保持したいのですが無理でしょうか>

  744 :デフォルトの名無しさん:2004/05/22 21:57
  739です.
  742様ありがとうございました. [アクセサリ->コマンドプロンプト]でDOS窓を開いた場合は保持できました.

  745 :デフォルトの名無しさん:2004/05/23 00:29
  コマンド実行してその標準出力を環境変数にセットしたりコマンドラインの引数に渡したりすることはできますか?
  shとかの.
  prog `cat text.txt`
  のようなことをやりたいです.

  746 :デフォルトの名無しさん:2004/05/23 05:32
  >>745
  command /? 嫁.

  747 :デフォルトの名無しさん:2004/05/23 16:45
  >>2
  バッタだよ  とツッコミをいれてほしかったのか?

  748 :デフォルトの名無しさん:2004/05/24 04:25
  >> 743
  pathはテキストファイルに保存することができます.
  開始・終了用のバッチファイルを作成してやればいいわけで.
  [aexit.bat]
  @echo off
  path>C:\restpath.bat
  exit
  [aresume.bat]
  if exist C:\restpath.bat call C:\restpath.bat
  あとはcommand.comに対して右クリック>プロパティ>プログラム.
  >バッチファイルにaresume.batを実行するようにすればpathが保存されます.
  終了はaexitから行ってください.
  問題のほうcdなんですが, 御所望のツールは知りません.
  ディレクトリ(フォルダ)の移動をファイルに保存して.
  おくようなツールを作ればないこともないのですが・・・.
  欲しいのでしたらパブリックドメインで作ります.
  著作権主張するようなものではないですからね.

  749 :デフォルトの名無しさん:2004/05/24 13:18
  >>745を分かる方いませんか?

  750 :デフォルトの名無しさん:2004/05/24 20:31
  >>749
  for /F "usebackq tokens=*" %i in (`cat text.txt`) do @prog %i
  とか. ただし, 出力が複数行にわたる場合は結合されずに.
  1行ごとにprogが実行されるので注意が必要.

  751 :デフォルトの名無しさん:2004/06/03 04:02
  * 自分自身を再起動する裏技.
  @echo off
  rem 自分自身の:mainを呼び出す.
  rem リダイレクトしたり最後にpauseしたりいろいろ.
  call :main %0 > C:\log.txt
  pause
  echo done
  exit
  :main
  echo hello
  * pauseのメッセージを変更する裏技.
  echo 終了します && pause>NUL

  752 :デフォルトの名無しさん:2004/06/03 08:19
  >>751
  裏技・・・かぁ. . . PC-98全盛期には普通に使われていたのだが. . .
  アプリの起動バッチの最後に特定のバッチファイルの起動を記述して.
  おいて, アプリの中でそのバッチファイルを生成してから終了すれば.
  メモリ常駐0のランチャになるとか.

  753 :デフォルトの名無しさん:2004/06/04 10:45
  WindowsXP標準でコマンドラインで.
  指定したディレクトリ以下のファイルをzipに圧縮するのってどうやるの?
  cabarcの.zip版みたいなの.

  754 :デフォルトの名無しさん:2004/06/04 21:13
  command.com の echo で.
  > とか < を表示するにはどうしたらいいですか?
  普通にやるとファイルへリダイレクトしてしまいます.

  755 :デフォルトの名無しさん:2004/06/04 21:17
  echo コマンドでパイプ (|) またはリダイレクト文字 (< または >) を表示するには,
  パイプまたはリダイレクト文字の直前にキャレットを付けます(^>, ^<, ^| ). キャレット文字そのものを使う必要がある場合は, キャレット文字を 2
  つ入力します (^^).

  756 :754:2004/06/04 21:55
  あっ, command.com は windows me の command.com です.

  757 :デフォルトの名無しさん:2004/06/05 18:17
  >>754
  >>195-198

  758 :デフォルトの名無しさん:2004/06/05 23:54
  >>196
  echo"hoge@"
  で一旦BATファイルを作った後, バイナリエディタで40(@)を00へ書き換えると.
  hogeだけが表示されるっていうのをどこかで見た.

  759 :デフォルトの名無しさん:2004/06/09 02:09
  突然ですが, WindowsNTで SET /Pのようなコマンドってないか知ってる方.
  いますか?

  760 :デフォルトの名無しさん:2004/06/09 02:41
  759より.
  誰か. . . 知ってる方いませんでしょうか?
  朝までに何とかしないと. . . (涙)

  761 :デフォルトの名無しさん:2004/06/09 08:49
  >>760
  応急処置でよければ, コントロールパネル>システム>環境変数があるんでそこに突っ込みたい定義いれてなんかのボタンを押せば.
  環境変数をスキに追加できたような.
  BATファイルでやっても, 窓閉じたら消えちゃうからね.
  動的になんかやりたいなら他の人たのむ.

  762 :デフォルトの名無しさん:2004/06/13 09:32
  バッチ処理などで, あるジョブが失敗したら.
  このルートでジョブを流すなど設定できる.
  ジョブ管理ソフトって無いでしょうか?
  マイクロソフト製品限定で.
  よろしくお願いします.

  763 :デフォルトの名無しさん:2004/06/13 12:14
  >>762
  マイクロソフトに訊け.

  764 :デフォルトの名無しさん:2004/06/13 13:53
  任意のファイルを任意の回数コピーするバッチを作りたいです.
  たとえば hoge.bat in.txt 5 >out.txt を実行すると.
  copy in.txt+in.txt+in.txt+in.txt+in.txt >out.txt と同様の結果になる.

  765 :デフォルトの名無しさん:2004/06/16 17:07
  callってどうやっても機能そのままで省略できないの?
  foo.exeをラップしてfoo.batをバッチであることを意識しないで呼び出したいんだけど.

  766 :デフォルトの名無しさん:2004/07/06 22:53

  767 :デフォルトの名無しさん:2004/07/07 17:28
  NTサーバのログオンバッチで,
  クライアントのファイル(例:C:\test\foge.ini)内の3行目(例:text=20)をtext=020(頭にゼロを入れる)と置換したいのですが,何か方法がありますでしょうか?

  768 :デフォルトの名無しさん:2004/07/07 17:47
  for使ってファイルを読んで, setで置換でいけるんじゃない?

  769 :デフォルトの名無しさん:2004/07/07 23:13
  済みませんが, 具体的にお教え願います.
  ファイルを読み込むということをしたことが無いので.
  コピーならあるんですが. . .

  770 :デフォルトの名無しさん:2004/07/07 23:15
  >>139

  771 :デフォルトの名無しさん:2004/07/07 23:16
  >>769
  「スタート」->「ヘルプ」->「キーワード」->for
  「コマンドプロンプト」->for /?

  772 :名無しさん@そうだ選挙に行こう:2004/07/11 10:55
  バッチを実行すると現在の日次(yyyymmddhh24miss形式)でファイルを作成したいのですが.
  こういう事って可能でしょうか?
  教えてください.

  773 :名無しさん@そうだ選挙に行こう:2004/07/11 11:00
  日付をファイル名に含める.
  set fdate=%date:~0, 4%%date:~5, 2%%date:~8, 2%
  set ftime=%time%
  if not "%ftime:~0, 1%"==" " set ftime=%ftime:~0, 2%%ftime:~3,2%%ftime:~6, 2%
  if "%ftime:~0, 1%"==" " set ftime=0%ftime:~1, 1%%ftime:~3,2%%ftime:~6, 2%
  echo %fdate% - %ftime%

  774 :名無しさん@そうだ選挙に行こう:2004/07/11 11:02
  >>773
  ありがとうございました.
  でもそんなに難しいのですね(T-T)

  775 :名無しさん@そうだ選挙に行こう:2004/07/11 11:12
  最近の人は BATCP や BU を知らんのかのぉ.

  776 :名無しさん@そうだ選挙に行こう:2004/07/11 11:14
  拾い食いは飼い主様に禁じられているので.

  777 :デフォルトの名無しさん:2004/07/12 01:19
  実行すると, 現在日時でファイルが作成されるというもの.
  作成されるファイルは, とりあえずテキストファイルで構いません.

  778 :デフォルトの名無しさん:2004/07/12 01:36
  .batファイルと.cmdファイルの違いはなんですか?

  779 :デフォルトの名無しさん:2004/07/12 10:35
  .batはシェルがcommand.comだった時代に出来たもの.
  .cmdはMSとIBMが仲がよかった時代OS/2 Ver1.xのシェルであるcmd.exe
  のために生まれそのままWinNTに引き継がれたもの.

  780 :デフォルトの名無しさん:2004/07/12 10:37
  で, .batファイルと.cmdファイルの違いはなんですか?

  781 :デフォルトの名無しさん:2004/07/12 18:30
  拡張子が違う.

  782 :デフォルトの名無しさん:2004/07/12 20:17
  cmdはNTだけ. NT限定バッチならこっちにするのが吉かも.

  783 :デフォルトの名無しさん:2004/07/18 07:46
  すみません, Windowsスレから誘導されてきました.
  cmd.exe上で標準出力を環境変数に代入する方法って何かありますでしょうか?
  あるいは, cmd.exe上でbu.comが動かないのですが, cmd上で動くバージョンとかあるのでしょうか?

  784 :デフォルトの名無しさん:2004/07/18 08:01
  DIRENT=`dir`

  785 :デフォルトの名無しさん:2004/07/18 09:51
  Win2000でパスの設定をするバッチファイルを作ったのだけど,
  コマンドプロンプトから実行するとちゃんと設定されるのに,
  ファイルをダブルクリックだとなぜか設定できません.
  (echo, pause等は動いてるので, 中身の実行自体は.
  されているようです)
  何か特別な事しないとダメですか?

  786 :デフォルトの名無しさん:2004/07/18 10:36
  >>785
  たぶんその設定は一時的なものでダブルクリックしたときのコンソールウィンドウが閉じた時点で設定が破棄されているんじゃないのか?

  787 :デフォルトの名無しさん:2004/07/18 20:47
  >>786
  うーん確かにそんな気もします.
  バッチファイルで恒久的にパス設定する方法ってあるのでしょうか?
  PCが苦手な多数の人たちの使うPCで, パスを設定しないとまずいので,
  できるだけ操作する人に簡単な方法で設定できるようにしたいのです.

  788 :783:2004/07/18 22:41
  >>787
  >バッチファイルで恒久的にパス設定する方法ってあるのでしょうか?
  autoexec.batに書いとけばいいですよ.
  私の質問の答えもお願い. >>784は私に?

  789 :デフォルトの名無しさん:2004/07/18 23:11
  Windows2000上でAUTOEXEC.BATって使用できるの?
  自分は以下の.regファイルを作成し, 実行してレジストリを直接書き換えてる.
  バッチファイルでの解決方法でなくてスマン.
  [ユーザ環境変数設定.reg]
  Windows Registry Editor Version 5.00
  [HKEY_CURRENT_USER\Environment]
  "環境変数名"="値"
  [システム環境変数設定.reg]
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
  Manager\Environment]
  "環境変数名"="値"

  790 :デフォルトの名無しさん:2004/07/19 00:43
  >>787
  一度設定すりゃズっと覚えてるから>789の方法でいいと思うんだが.
  どうしてもバッチファイルでやりたきゃリソースキットのsetxとか試してみ.
  http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setx-o.asp
  DOSの時代にもあったねぇ. こんなの.

  791 : - :2004/07/19 03:15

  792 :783:2004/07/19 09:19
  >>789
  Windows2000にautoexec.bat作って.
  path=
  でpathを追加してます.
  もちろん, cmd.exeを開けば, pathをいつでも覚えていますよ.
  レジストリでパス設定できるんですね, 全然わからんけど・・・・・.

  793 :デフォルトの名無しさん:2004/07/24 15:49
  ログファイルAの最後の行とログファイルBの最初の行の比較を行いたいんですが.
  それぞれ抽出可能でしょうか?

  794 :デフォルトの名無しさん:2004/07/24 19:06
  >>793
  for /f "delims=" %%a in (A.log) do @echo %%a >aaa
  for /f "delims=" %%z in (B.log) do @echo %%z>zzz & gotofc
  :fc
  fc aaa zzz

  795 :793:2004/07/24 20:07
  回答ありがとうございました.
  ただこの処理では得たい結果が得られませんでした.
  したい処理は,
  log1.csv の最終行の第一トークンの取得.
  set old_no=結果.
  log2.csv の最初の行の第一トークンの取得.
  set newno=結果.
  set /a new_no=%newno%-1
  if %old_no%==%new_no% goto end_step
  goto chk_err
  こんな感じでログがきちんと連番で取れているかの確認が行いたいです.
  よろしくお願いします.

  796 :デフォルトの名無しさん:2004/07/24 20:30
  >>795
  @echo off
  for /f "delims=, " %%a in (log1.csv) do set old_no=%%a
  for /f "delims=, " %%a in (log2.csv) do set new_no=%%a&gotofc
  :fc
  set /a new_no = new_no - 1
  echo %old_no%==%new_no%

  797 :793:2004/07/25 10:37
  >>796
  納得です, for文のdo  コマンド部分で&を用いて1回目の処理で抜けるわけですね.
  最終行のデータはやはりこのかたちになりますか.
  データが多いとき処理時間が気になりますがバッチの限界ですかね.
  ともあれ助かりました.

  798 :デフォルトの名無しさん:2004/07/27 20:24
  お聞きしたいのですが,
  echo 処理選択メニュー.
  echo 1.在庫データ取得.
  echo 2.出庫データ取得.
  echo 3.入庫データ取得.
  と, 表示して処理を選択したいのですが, どうすれば良いでしょうか.
  教えてください, Win2000です.

  799 :デフォルトの名無しさん:2004/07/27 21:42
  >>798
  choice /?

  800 :デフォルトの名無しさん:2004/07/27 23:21
  >>798
  set/pとifを使う.

  801 :デフォルトの名無しさん:2004/07/28 23:28
  ファイルを削除するバッチを作っています.
  DELコマンドで削除するのですが, エラーレベルが取れないようです.
  共有違反など, 削除に失敗したときのステータスを返したいのですが,
  なにか良い方法はありますでしょうか?
  よろしくお願いします.

  802 :デフォルトの名無しさん:2004/07/28 23:46
  >>801
  今どうやってやって取れないのかちゃんと書けよ.

  803 :デフォルトの名無しさん:2004/07/29 00:45
  >>764
  まだ未解決か?ってか, 一月半も前なら出来てると思うが.
  [使い方]
  hoge.bat in.txt 5 out.txt
  [hoge.bat]
  FOR /L %%i IN (1, 1, %2) DO type %1 >NUL >> %3
  これでできると思うぞ. 「>」は無いけどな.
  type使うのが味噌かな(笑)

  804 :デフォルトの名無しさん:2004/07/29 03:15
  >>801
  del foo.txt || goto :error

  805 :デフォルトの名無しさん:2004/08/01 10:20
  >>803
  out.txt が初めから存在したときの結果が >>764 と異なるから,
  バッチファイルの初めに del %3 を入れといた方がいいと思う.

  806 :デフォルトの名無しさん:2004/08/01 10:23
  >>805
  確かに.
  '>>'は追加書き込みのことだから.
  その方がいいですね.

  807 :デフォルトの名無しさん:2004/08/01 18:57
  バッチファイル実行するたびに処理を変えたいんだけど.
  # とあるレジストリのONとOFF
  どうやってやればいいの?

  808 :デフォルトの名無しさん:2004/08/02 02:18
  >>807
  EXIST と RENAME 使え.
  ex.ON.txt

  809 :デフォルトの名無しさん:2004/08/05 22:58
  >>764
  IF EXIST out.txt  〜.
  で, 処理を打ち切るかどうかもその人の考えるところかな.

  810 :810:2004/08/10 12:29
  あるテキストの内容を.
  「全選択」->「コピー」->「メーラー自動起動」->「新規メールにペースト」
  って感じの流れをbatとかで書けないものでしょうか?
  テキストオープン.
  Ctrl+A
  Ctrl+C
  メーラー自動起動(ちなみにOutlookExpress)
  Alt+F
  Alt+N
  Alt+M
  Tab*3
  Ctrl+V
  みなたいな感じなんですが.
  宛先も自動選択とかできたらなお嬉しいかも.
  何とか可能にできないものでしょうか?

  811 :デフォルトの名無しさん:2004/08/10 12:31
  >>810
  wshでSendKey使っとけ.
  バッチファイルじゃ無理.

  812 :デフォルトの名無しさん:2004/08/10 12:41
  >>810
  スレ違いだけどvbsならこんな感じ.
  set ws = WScript.CreateObject("WScript.Shell")
  ws.Run "C:\WINDOWS\hh.exe C:\Program Files\Microsoft Visual
  Studio\MSDN98\98VS\1041\msdnvs98.col",1, False
  WScript.Sleep 1000 ' 起動待ち.
  ws.SendKeys "%n"
  'WScript.Sleep 100
  ws.SendKeys "GetTickCount"
  ws.SendKeys "{ENTER}"

  813 :デフォルトの名無しさん:2004/08/10 12:57
  >>811
  > バッチファイルじゃ無理.
  わからんぞ.
  >>810
  start mailto:bc@def?subject=タイトル^&body=本文%0A%0D二行目.
  テキストの内容を読むにはforを使う.

  814 :810:2004/08/10 16:24
  wshでSendKeyで実現できました!
  思っていた事が全部できちゃって驚きでした.
  なんか色々できそうなので勉強してみます.
  みなさんありがとうございました<(_)>

  815 :デフォルトの名無しさん:2004/08/10 17:32
  cmd終わったな. w.

  816 :デフォルトの名無しさん:2004/08/10 18:18
  >>815
  ?

  817 :デフォルトの名無しさん:2004/08/10 20:35
  Java関係のメイクや起動に使って重宝してます.
  antとか使う方が便利らしいが.
  より気軽と思う.

  818 :デフォルトの名無しさん:2004/08/13 13:01
  Bシェルのコーディング規約が乗っているHPなんか, ないでしょうか?
  よろしくお願いします.

  819 :デフォルトの名無しさん:2004/08/19 10:16
  時代はJScript.NET

  820 :デフォルトの名無しさん:2004/08/22 02:27
  あるファイルのタイムスタンプを取得し変数にセット.
  別のファイルのタイムスタンプを取得し変数にセット.
  2つの変数を比較し, 違っていたら, 何らかの処理を行うということを.
  やりたいのですが, どのようにしたら実現出来ますでしょうか?

  821 :デフォルトの名無しさん:2004/08/22 02:42
  何らかの処理によるな.

  822 :デフォルトの名無しさん:2004/08/22 03:10
  for %i in (arufairu) do set hensuu=%~ti

  823 :デフォルトの名無しさん:2004/08/22 04:48
  なんとなく思いついたので,
  kill *
  これ, 実際にやったら落ちた. w.
  嫌な事があったら会社のpcに仕込んでみるか.

  824 :デフォルトの名無しさん:2004/08/26 12:39
  質問です.
  if not %9=="" set receipt=%2, %3, %4, %5, %6, %7, %8, %9
  if not %8=="" set receipt=%2, %3, %4, %5, %6, %7, %8
  if not %7=="" set receipt=%2, %3, %4, %5, %6, %7
  if not %6=="" set receipt=%2, %3, %4, %5, %6
  if not %5=="" set receipt=%2, %3, %4, %5
  if not %4=="" set receipt=%2, %3, %4
  if not %3=="" set receipt=%2, %3
  if not %2=="" set receipt=%2
  echo パラメーターを設定してください.
  1行目で.
  set の使い方が誤っています.
  と怒られます.
  パラメーターが入ってない場合に, 「, 」が2個以上続くからと思われますが,
  うまくこのエラーを回避する方法は無いでしょうか.
  1晩考えてここまでたどり着きましたが, うまい方法が思いつきません・・・.

  825 :デフォルトの名無しさん:2004/08/26 16:36
  >>824
  これはどうだ. %10以降もあればそれもreceiptに入れちゃうけど.
  それより%1はreceiptに入れなくていいのか?
  set receipt = %2
  :Loop
  if "%3" == "" goto End
  set receipt = %receipt%, %3
  shift
  goto Loop
  rem --------------
  :End

  826 :824:2004/08/26 17:55
  >>825
  ありがとうございますバッチリです!
  「shift」コマンドの存在を知りませんでした.
  %1は別のパラメータ指定するつもりなんで大丈夫です.

  827 :デフォルトの名無しさん:2004/08/26 22:39
  指定のフォルダ以下にあるVBプロジェクトファイル(*.vbp)を.
  一括コンパイルしたいのですが, このようなバッチプログラムは作成可能でしょうか?
  Dir *.vbp /B /S
  で一覧は作成できるのですが, この結果を.
  VB6 /m プロジェクト.vbp
  といった感じでVB6.exeに渡す方法がわかりません.

  828 :デフォルトの名無しさん:2004/09/06 15:30
  ラーメンタイマー(要Cygwin)
  sleep 180 && c:\windows\media\tada.wav

  829 :デフォルトの名無しさん:2004/09/08 02:21
  先生たすけてください.
  Windows2000で, 指定秒だけ待機させたいのですが,
  choiceが使えなかったので悩んでます.
  どのように書けば待機して次の行にいけるようになりますか?

  830 :デフォルトの名無しさん:2004/09/08 02:25
  %time%が指定回変化したら.
  重いけど.

  831 :デフォルトの名無しさん:2004/09/08 02:26
  ping -n 10 localhostとか.

  832 :デフォルトの名無しさん:2004/09/08 02:31
  FOR %%i IN (1, 1, 1000) DO START http://www.2ch.net/

  833 :デフォルトの名無しさん:2004/09/08 02:34
  スゲー!
  って, ハングアップしちゃったじゃんかよ. ('-';)

  834 :デフォルトの名無しさん:2004/09/08 02:34
  >>830-832
  ありがとうございます!助かりました!

  835 :デフォルトの名無しさん:2004/09/08 11:07
  質問です.
  同じドライブのなかに下記のようにユーザーごとにアクセスできるようにフォルダを作成しました.
  d:\server\data\username
  d:\server\data2\username_data
  それをx:ドライブとy:ドライブにしてユーザーごとに表示させたくて,
  net use x:server\%username% /yes
  net use y:server\%username_data% /yes
  とやってみたのですが, Xはうまくいったのですが, Yはうまくいきませんでした.
  初心者な質問ですみません. よろしくお願いいたします.

  836 :デフォルトの名無しさん:2004/09/08 11:57
  複数のファイルに対して同じ名前のフォルダを作製.
  ファイルを同じ名前のフォルダに移動.
  各フォルダに移動しながら中のファイルを操作.
  って流れのものを作りたいんですけど可能なんでしょうか?
  同名のフォルダを作ったり作成後のフォルダ名で移動する方法がわかりません.
  なんとかなりますか?

  837 :デフォルトの名無しさん:2004/09/08 12:34
  for %%f in (*.*) do mkdir "tmp%%f" && copy "%%f""tmp%%f"
  ファイルと同名のフォルダ作れないから名前変えて, 移動じゃなくてコピーだけど.
  こんな感じでできる.

  838 :デフォルトの名無しさん:2004/09/08 12:46
  >>835
  うまくいかなかったときのエラーメッセージは?

  839 :837:2004/09/08 12:52
  本格的なものが必用ならバッチはお勧めしない.

  840 :デフォルトの名無しさん:2004/09/08 12:58
  >>835
  net use y:server\%username%_data /yes

  841 :デフォルトの名無しさん:2004/09/08 13:34
  >>838
  for %%f in (*.*) do mkdir "tmp%%f" && copy "%%f""tmp%%f" || goto :error
  :error
  echo failed

  842 :835:2004/09/08 15:45
  >>838  エラーはまったく出ませんでした.
  >>840  できました!!
  みなさまありがとうございました. ほんと助かりました.

  843 :デフォルトの名無しさん:2004/09/09 16:33
  タスクバーに表示しないでバックグラウンド的に実行する方法ってないですか?
  終了はタスクマネージャで終了するかログオフで行えればいいんですが.

  844 :デフォルトの名無しさん:2004/09/18 21:48:35
  バッチファイルについて質問です.
  例えば.
  あるフォルダとLhacaなどの圧縮ファイルがあって.
  そのフォルダをまるごとLhacaなどを使用して自動的に圧縮させて.
  違うフォルダに日付をつけて格納させたいのですが.
  こういうのって可能でしょうか?

  845 :デフォルトの名無しさん:2004/09/18 21:50:00
  .cabでよければcabarcと%time%, %date%あたり使えば楽勝.

  846 :デフォルトの名無しさん:2004/09/18 22:01:57
  バッチファイルについて質問するときはOSも書くべきだと思う.

  847 :デフォルトの名無しさん:2004/09/18 22:08:09
  >>845
  できればZIPファイルでお願いします.
  >>846
  Windows2000です.

  848 :デフォルトの名無しさん:2004/09/18 22:12:29
  >>847
  標準じゃ無理.
  Cygwin入れてzipコマンド使えばコマンドラインで処理できる.
  どうしてもLhacaでやりたいならWSHとSendkeys使えばいい.

  849 :デフォルトの名無しさん:2004/10/15 16:40:23
  フォルダの中のファイルをリストアップして.
  EXEに渡す処理はどう書けばいいですか?
    C:\conv.exe AAA.bmp AAA.jpg
    C:\conv.exe B.bmp B.jpg
    C:\conv.exe CC.bmp CC.jpg
  WinXPです.

  850 :デフォルトの名無しさん:2004/10/15 17:03:47
  やりたいことがよくわからんが,
  bmpを探してconv.exeでjpgを出力だったら.
  for %%f in (*.bmp) do C:\conv.exe "%%f.jpg"
  みたいなかんじ.
  これだファイル名がAAA.bmp.jpg みたいになるけど.

  851 :デフォルトの名無しさん:2004/10/17 18:46:26
  INIファイル操作するコマンドラインツールってないですか?
  ini c:\myapp.ini set SECTION IDENT=VALUE
  見たいな感じで使えるもの.

  852 :デフォルトの名無しさん:2004/10/17 19:32:45
  >>851
  nircmdc.exe inisetval "c:\windows\test.ini" "section1""TestValue" "1"

  853 :デフォルトの名無しさん:2004/10/18 06:24:13
  >>852
  よこからですが, これは便利っすね〜, いろいろ出来て.

  854 :デフォルトの名無しさん:2004/11/07 04:21:42
  バッチファイルでサブルーチンage
  @echo off
    set ret=label1
    set arg=aaa
    goto sub
  :label1
    echo %arg%
    set ret=label2
    set arg=hello
    goto sub
  :label2
    echo %arg%
    goto exit
  rem 環境変数%arg%に%arg%%arg%をセットする.
  rem 入力 %arg%
  rem 出力 %arg%
  :sub
    set arg=%arg%%arg%
    goto %ret%
  :exit

  855 :デフォルトの名無しさん:2004/11/07 09:04:03
  サブルーチン? call使えばいいんじゃないの?

  856 :どざー:2004/11/07 15:57:31
  >>855
  うむ, 「 call %0 」なども味わい深いものである. 精進せよ.

  857 :デフォルトの名無しさん:2004/11/09 01:08:47
  関連付けを使わずにwavファイルを一回または連続で鳴らす方法おせーて.

  858 :デフォルトの名無しさん:2004/11/09 18:09:58
  mplay32 /play C:\WINNT\Media\tada.wav

  859 :デフォルトの名無しさん:2004/11/11 09:35:37
  bachからソフトを起動し, そのソフトを終了させなくてもbachを終了させる方法ってあります?
  call で呼ぶと, 帰ってくるまでexitできなくて.

  860 :デフォルトの名無しさん:2004/11/11 12:43:43
  >>859
  objWS = CreateObject(WscriptShell)
  objWS.Run = 呼び出すプログラムへのパス)
  という別のをCALLするとかしか思いつかん.
  ERORRLEVELで.

  861 :デフォルトの名無しさん:2004/11/11 12:44:14
  何とかなるかどうかはプログラムに拠るだろうし.

  862 :デフォルトの名無しさん:2004/11/11 12:46:22
  bachって何?
  バッハ?

  863 :デフォルトの名無しさん:2004/11/11 12:47:19
  >>859
  一週間前に同じことをしようとしたんだが, 結局vbsにした.
  で, >>860に落ち着いた. しかし, なんか統一感がないので, 処理を全部vbsで書いた.

  864 :デフォルトの名無しさん:2004/11/11 12:50:12
  CreateProcess()だけするプログラムを作ればいいんじゃないの?

  865 :デフォルトの名無しさん:2004/11/11 12:51:07
  >>862
  windows3.1がモーツァルトだとしたらそうだ.

  866 :デフォルトの名無しさん:2004/11/11 12:57:11
  >>859
  start

  867 :デフォルトの名無しさん:2004/11/11 13:34:53
  batchでしたね(^_^;)startでいけました!
  一回startで試したんですけど, パスを""で囲むとだめだったんですね.

  868 :863:2004/11/11 14:14:08
  >>866
  横からありがとう.
  START "タイトル"  プログラムへのパス.
  でできた.
  (雑誌の裏にでも書いておくべきメモとして. )
  START ["タイトル"] [/Dパス] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
  [/LOW | /NOMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
  [/WAIT] [/B] [コマンド/プログラム] [パラメータ]
  **コマンドにつけた"引用符"が, タイトルと混同されるみたいだ.

  869 :デフォルトの名無しさん:2004/11/12 10:12:38
  Windowsの終了時に自動的にバッチを実行する方法ってありますでしょうか?
  できるなら, ツール等を使わず, Windows環境内で実行できたらいいのですが.
  環境は2000とXPです.

  870 :デフォルトの名無しさん:2004/11/12 12:31:58
  >>869
  gpedit.msc

  871 :869:2004/11/12 13:55:04
  >>870
  ありがとうございます. こんな機能あったのですね.
  しかし, スクリプトに登録しても実行されてないみたい・・・なんで?

  872 :デフォルトの名無しさん:2004/11/12 21:03:43
  ftpでputするプログラムなんですが, そのputするファイル名.
  を可変にする方法を教えて下さい.
  ftp -s:UPLOAD.txt
  がバッチファイルの中身で, UPLOAD.txt 内には.
  OPEN 〜.
  USERID
  PASSWORD
  PUT C:\ファイル名.
  QUIT
  と書いてます.
  ここのファイル名を可変にしたいです.
  実際にはその日の日付が入るのですが.
  UPLOAD.txt 自体がバッチファイルでは無いため.
  %date:~2, 4%%date:~7, 2%%date:~10, 2%などとしても.
  dateが使えなくて困ってます.

  873 :デフォルトの名無しさん:2004/11/12 21:40:37
  >>872
  echoを使ってUPLOAD.txtを生成すれば済む.

  874 :872:2004/11/12 22:03:53
  >>873
  なるほど. それならできそうです.
  ありがとうございました.

  875 :デフォルトの名無しさん:2004/11/15 01:54:24
  ネットワークで繋がっているサーバの時刻を秒数付で表示させたいんですけど.
  何か良い方法はありませんか.
  net timeだと分数までしかでないので, 使えないんですよね.
  osはw2kです.

  876 :デフォルトの名無しさん:2004/11/16 11:43:36
  >>875
  何がしたいかも書くと吉.

  877 :875:2004/11/16 15:28:03
  >>876
  自分の使用しているサーバとタイムサーバの時間が合っていることを.
  見た目でわかるようにしたいのです.
  net time のsetを使えば合うことは知っているけど, それを知らない人にも.
  合ってるよねってことを確認させたいのです.

  878 :デフォルトの名無しさん:2004/11/16 18:01:00
  >>877
  俺だったらこうする. [下矢印]
  ECHO "時間あってます"

  879 :デフォルトの名無しさん:2004/11/17 15:11:09
  CDのボリュームラベルをファイル名にしてファイル一覧を作るにはどうしたらいいですか?

  880 :デフォルトの名無しさん:2004/11/17 15:15:14
  dir q:の出力の一行目を取り込んでファイル名にして.
  dir q:\* /s /b > %LABELNAME%

  881 :875:2004/11/21 20:58:23
  >>878
  2ch的にはそれでOKなんだけどね.
  やっぱり無理か.

  882 :デフォルトの名無しさん:2004/11/21 21:50:27
  >>881
  駄目な理由が分からない.
  説明汁.

  883 :デフォルトの名無しさん:2004/11/21 21:53:29
  無理でいいんじゃないの.

  884 :デフォルトの名無しさん:2004/11/22 16:09:21

  885 :デフォルトの名無しさん:2004/11/25 23:34:26
  バッチで任意の環境変数をSETするとき, SETLOCAL文は必要でしょうか.
  バッチ内部の環境変数はそのバッチが終われば消えると思っていたので, 今まで記述したこと内のですが.

  886 :デフォルトの名無しさん:2004/11/25 23:42:35
  親のバッチファイルのを書き換えちゃうよ.
  他のプロセスが親だった場合は知らないけど.

  887 :デフォルトの名無しさん:2004/11/26 18:50:01
  >>886 即レスTHANKS!
  親から子をCALLしている場合ですね. 逆に見れば, 自己完結のバッチには不要ということですかね.

  888 :869:2004/12/01 10:30:30
  Windows終了時に自動でバッチを実行できないかと聞きました, 869です.
  gpedit.mscでシャットダウン時にスクリプトを実行する方法を教えていただいたのですが,
  どうもうまく実行できないようです.
  シャットダウン時にネットワークドライブの切断をするバッチ,
  起動時にネットワークドライブに接続をするバッチを指定しているのですが,
  スクリプトを実行中の文字は確認できるのですが実行できていないようです.
  バッチ自体は手動で起動してみると正常に実行できるので不備はないと思うのですが,
  何が原因でしょうか?アドバイスよろしくお願いいたします.

  889 :デフォルトの名無しさん:2004/12/01 11:08:25
  ネットワークドライブを切断するプログラムのエラーメッセージや.
  エラーコードをファイルに出力して原因を調べたらいいのではないかと.

  890 :872:2004/12/01 23:24:32
  作ったFTPのバッチをFTPサーバーに入れて正常に動作することが確認できました.
  今度はFTPサーバーに置いたバッチをクライアントから実行したいです.
  net use \\サーバー名\バッチを置いたフォルダ /user:ユーザ名 パスワード.
  でFTPサーバーに接続してから.
  call \\サーバー名\バッチを置いたフォルダ\バッチファイル名.
  と書いたバッチファイルをクライアントで実行したところ.
  open 〜.
  の時点でinvalid commandというエラーがでてしまいます.
  クライアントからサーバーのバッチファイルを実行することはできないのでしょうか?

  891 :デフォルトの名無しさん:2004/12/02 00:25:19
  >>890
  telnet

  892 :872:2004/12/02 01:27:42
  >>891
  もう少し詳しく教えてもらえませんでしょうか.
  telnetでLAN接続されているFTPサーバーに接続することはできるのですが,
  そこから>>872のように, さらに別の(LAN接続されていない)FTPサーバーに.
  ログインしなければなりません. その方法がわかりません.

  893 :869:2004/12/02 12:41:20
  コマンドをテキストに出力してみたんですが, 起動・終了時の実行時はなぜか出力されない・・・.
  どうして・・・orz

  894 :デフォルトの名無しさん:2004/12/07 15:50:47
  >>879
  は俺も知りたい.

  895 :デフォルトの名無しさん:2004/12/07 18:10:46
  >>894
  >>880

  896 :デフォルトの名無しさん:2004/12/07 18:13:32
  ドライブ C のボリューム ラベルは XXXXX です.
  で可変長で取れないよ. スペース検索してとか面倒だし.
  一発で取れるのないの?

  897 :デフォルトの名無しさん:2004/12/07 18:17:02
  dir q: | for /f "usebackq tokens=5" %%i in (`find "ボリュームラベル"`) do set
  LABELNAME=%%i

  898 :デフォルトの名無しさん:2004/12/07 20:04:31
  >>897
  ありがとう.
  パイプにforをつなげられるのか.
  MSのスクリプトは気味の悪い構文が多いなぁ・・・.

  899 :デフォルトの名無しさん:2004/12/11 01:40:05
  >>898
  無計画な増改築を繰り返しているからなー.

  900 :デフォルトの名無しさん:2004/12/12 22:28:32
  バッチ処理の途中で処理を止めて, プロンプト画面で打ち込んだ文字列を.
  テキストファイルに出力する方法ってありますか?
  たとえば,
  dir > a.txt
        [下矢印]
  ここでバッチを一時停止させる(A処理)
        [下矢印]
  文字列を打ち込むと自動でa.txtに追記させるような方法(B処理)
        [下矢印]
  エンターキーか何かで続きのバッチ処理を再開させる(C処理)
        [下矢印]
  続きのバッチが流れる.
  (A・B・C)処理の方法ってありますか?

  901 :デフォルトの名無しさん:2004/12/12 22:37:18
  rem hoge.bat
  @echo off
  pause
  copy con %1
  使い方はhoge a.txt, 入力の終了はCTRL+Z.

  902 :900:2004/12/12 23:17:23
  >>901
  Thanks.
  画面の文字列は"%1"もしくは"%%1"で記憶できるんですね.
  願わくば入力の終了をCtrl+Zではなくエンターキー一回で.
  できれば言うことないんですが・・・.

  903 :デフォルトの名無しさん:2004/12/12 23:29:05
  >902
  君, 一から勉強しなおした方がたぶん早いよ.

  904 :900:2004/12/12 23:30:41
  ショボーン.

  905 :デフォルトの名無しさん:2004/12/13 00:07:49
  質問なんですが, バッチファイル内でexeを呼び出しているんですが,
  バッチファイルをダブルクリックで実行するとそのexeは正常に動くんですが.
  windows->ファイル名を指定して実行でバッチファイルをフルパスで.
  起動すると, そのexeがうまく動いてくれません.
  何が原因かがわからず困っています.
  どうかご教授を・・・.

  906 :デフォルトの名無しさん:2004/12/13 00:14:38
  バッチファイルの先頭付近に[下矢印]を追加してみるとか.
  %~d0 && cd %~p0

  907 :905:2004/12/13 01:14:36
  >>906
  私に対しての答えでしょうか?
  対策としては, これを追加すれば出来るかもしれないということでしょうか?
  バッチは詳しくわかってないので, %~d0 && cd %~p0が何を.
  表しているか, わからないのですが・・・.

  908 :デフォルトの名無しさん:2004/12/13 01:22:07
  >>907
  Windowsのヘルプくらい見れるだろ.

  909 :デフォルトの名無しさん:2004/12/13 12:01:52
  プログラム(testprogram.exe)を起動するには.
  START testprogram.exe
  だと思いますが, プログラムを終了するコマンドはありますか?

  910 :デフォルトの名無しさん:2004/12/13 12:53:07
  >>909
  http://www.google.co.jp/search?q=kill.exe

  911 :デフォルトの名無しさん:2004/12/13 12:59:17
  >>910
  KILL testprogram.exe で終了できるんですね. ありがとうございます.
  もうひとつお願いします.
  バッチ実行中に, 「終了するには10秒以内にFのキーを押してください」と表示させて.
  10秒以内にFのキーを押したときだけEXITに進んでバッチファイルを終了し,
  10秒以内になんのキーも押さないときにはただ次の行に進ませるにはどうすればいいですか?

  912 :デフォルトの名無しさん:2004/12/13 13:08:57
  >>911
  http://www.google.co.jp/search?q=choice.exe

  913 :デフォルトの名無しさん:2004/12/13 13:18:06
  BATとWSHとどっちを使うのがいいですか?

  914 :デフォルトの名無しさん:2004/12/13 13:20:47
  >>913
  BAT の検索結果 約 16, 600, 000 件中 1 - 10 件目 (0.09 秒)
  WSH の検索結果 約 678, 000 件中 1 - 10 件目 (0.16 秒)
  BATの圧勝.

  915 :デフォルトの名無しさん:2004/12/13 13:20:48
  >>913
  用途次第.

  916 :911:2004/12/13 13:35:12
  調べましたがこれでいいですか?
  CHOICE /C:FN /T:2, 10 終了するには10秒以内にFのキーを押してください.
  IF ERRORLEVEL 1 GOTO END
  :END
  EXIT

  917 :911:2004/12/13 13:43:19
  失礼しました. こうです. これでいいですか?
  CHOICE /C:FN /T:2, 10 終了するには10秒以内にFのキーを押してください.
  IF ERRORLEVEL 1 GOTO END
  REM ここに入れるプロセスは現在作成中.
  :END
  EXIT

  918 :デフォルトの名無しさん:2004/12/13 13:44:01
  自分で試せよ.

  919 :911:2004/12/13 14:12:14
  自分で試したけどなんかうまくいかない.
  プロンプト画面が一瞬だけ表示されてなんかエラーメッセージみたいなのが.
  表示されるんだけどすぐ消えるので読み取れない.
  プロンプト画面が消えないようにしてエラーメッセージを読むにはどうすればいいですか?

  920 :デフォルトの名無しさん:2004/12/13 14:37:17
  >>919
  コマンドプロンプトを先に起動させておいて, その中でバッチを実行するとメッセージが読める.
  俺んとこではこう表示される.
  CHOICE: タイムアウト時の既定値が指定された(または既定値の)選択肢にありません.
  なのでこうしろ.
  CHOICE /N /C:NF /T:N, 10 終了するには10秒以内にFのキーを押してください.
  IF ERRORLEVEL 2 GOTO END
  ところでEXEとかの実行可能ファイルはstartぬきでも呼べるよ.

  921 :デフォルトの名無しさん:2004/12/13 14:50:10
  バッチファイル側でコプロセスの終了を待って次に進む->startなし.
  バッチファイル側でコプロセスの終了を待たずに次に進む->startあり.

  922 :919:2004/12/13 14:56:23
  >>920-921
  サンクス. やってみます.

  923 :デフォルトの名無しさん:2004/12/13 16:31:18
  ショートカット(*.LNK)を実行ってできますでしょうか?

  924 :デフォルトの名無しさん:2004/12/13 16:55:04
  >>923
  つまりお前には実行できなかったということだな.

  925 :デフォルトの名無しさん:2004/12/13 17:05:40
  一人頭の悪い厨房が常駐してるみたいだな.
  わざわざこんな地味なスレ荒さんでも.

  926 :デフォルトの名無しさん:2004/12/13 18:49:18
  >>924
  そうです.
  >>925
  フォローありがとうございます. って荒らしてんの, 漏れじゃないですよね.

  927 :デフォルトの名無しさん:2004/12/13 19:16:01
  DOS窓開く.
  実行したいショートカットをDOS窓へドラッグドロップ.
  リターン.
  DOS窓でできればバッチも同じ.

  928 :923:2004/12/13 19:48:53
  >>927
  あぁ, それでよかったんですか.
  わざわざ頭に start つけてますた・・・. 逝ってきます.

  929 :デフォルトの名無しさん:2004/12/13 19:55:36
  choiceって, winNT系はそのままじゃ使えんのか・・・.
  ライブラリがあるけど, 汎用性の問題から使えないなぁ.

  930 :デフォルトの名無しさん:2004/12/13 20:00:46
  >>928
  start でも問題なく開けるぞ. >>406 みれ.

  931 :デフォルトの名無しさん:2004/12/13 21:01:15
  バッチファイルを作ったのでアイコンをダブルクリックするとちゃんと動作するんだけど.
  タスクで決まった時間にこの.batファイルを実行しようとするとピクリとも動かない.
  Dドライブにしまった.batファイルをタスクで実行するにはそのままじゃだめなの?
  もしかして.batファイルはタスクでは動かせないのだろうか.

  932 :923:2004/12/13 21:23:51
  >>930
  あぁ, 本当だぁ・・・. もう一回逝ってきます.

  933 :デフォルトの名無しさん:2004/12/14 00:47:02
  当方w2k鯖にてFTP.exeをバッチにてファイル転送をしたいのですが.
  バッチ内容を手動で行うと正常動作確認できたのですが,
  バッチにて処理を行うと, putやgetの所で.
  FTPexe  アプリケーションエラー, メモリがwrittenになることが・・・.
  とエラーが出るのですが原因が分かりません.
  鯖再起動はサービスが24h稼動の為止める事が出来ません.
  原因を教えてください.

  934 :デフォルトの名無しさん:2004/12/14 01:20:33
  >>931
  ちなみに, タスクってWindowsのタスクスケジューラですか?
  Win2000とかならば, タスクスケジューラのログとか見れば.
  場合によっては分かると思います.
  あとは, アプリケーションのコマンドとか呼び出してるならば.
  パスとかの環境変数とかが足りない等々, 私はだいたい.
  その辺で嵌るんで確認してみてはどうでしょうか.

  935 :デフォルトの名無しさん:2004/12/14 01:21:20
  >>933
  原因はわかんないけど wput に乗り換えてみたらどうですか?
  ソースもあるから, 変なこと起きても対処しやすいし.

  936 :デフォルトの名無しさん:2004/12/14 01:22:28
  >>931
  漏れは>>934に加えてNT系OSでは .bat じゃなくて .cmd にしてるけど・・・.
  .bat って command.com が動きそうで嫌だから.

  937 :デフォルトの名無しさん:2004/12/14 02:06:38
  >>931
  atコマンドで登録したらうまくいくかもね.

  938 :デフォルトの名無しさん:2004/12/14 06:18:29
  >>933
  バッチでFTPexeは起動できるけど.
  バッチでFTPexeを直接操作できないよね.
  ftp -s: のことだろうか?
  具体的に何やってるか書かないと意味不明.

  939 :931:2004/12/14 07:22:11
  見当をつけて頂いてとても助かります. ありがとう.
  >>934
  はい, Windowsのタスクスケジューラです. OSはWin2000です.
  ログが見れることをはじめて知ったので見てみます.
  環境変数はまだ使わないで, del D:\フォルダ名\ファイル名.dbのように.
  絶対指定にしています.
  >>936
  .cmd を調べてみます.
  >>937
  atコマンドをググりましたがよくわかりません. 帰ってきたらもういちど.
  じっくり検索してみます.

  940 :デフォルトの名無しさん:2004/12/14 11:13:10
  >>939
  >環境変数はまだ使わないで, del D:\フォルダ名\ファイル名.dbのように.
  >絶対指定にしています.
  おまえ >>934 の言った環境変数の意味分かってるか?

  941 :939:2004/12/14 20:43:09
  スケジュールログを見たら, ログオン失敗と出ていました.
  タスクスケジューラの設定がいけなかったようです. 直したつもりです.
  プログラムもだめなところがあるかもしれませんが, タスクの.
  時間がきたら動くか確認します. ありがとうございました. またよろしくお願いします.
  >>940 用語も覚えるようにします.

  942 :933:2004/12/14 22:13:50
  >935
  新たに何かを入れる時は申請通さないといけないので.
  見送りました.
  >938
  バッチでFTPコマンド使う場合は-s:コマンドテキストが.
  当然だと思い説明を省きました.
  FTP.exeをw2ksp4のバージョンの新しいのを.
  コピーして動かしてみた所正常に動きました.
  レスありがとうございました.

  943 :デフォルトの名無しさん:2004/12/14 22:25:34
  >>942
  プログラミングとなんも関係ないな.
  アプリの使い方ならWin板か初心者板にでも逝けよ.

  944 :デフォルトの名無しさん:2004/12/17 16:17:22
  メッセージを時間指定して(例えば5秒間)表示することってできますでしょうか?

  945 :デフォルトの名無しさん:2004/12/17 20:37:23
  >>944
  可能.
  やり方は, こいつが書いてくれるだろう.
                  [下矢印]

  946 :デフォルトの名無しさん:2004/12/17 20:39:53
  >>831

  947 :デフォルトの名無しさん:2004/12/17 22:30:25
  外部プログラム使えばなんでもできるが,
  それをバッチファイルプログラミングと呼んでいいものか.

  948 :デフォルトの名無しさん:2004/12/17 23:05:00
  標準コマンドならありだろ.

  949 :デフォルトの名無しさん:2004/12/18 18:53:31
  外部プログラムを連続して呼べるようにしたのがバッチファイルじゃないのか?

  950 :デフォルトの名無しさん:2004/12/18 19:53:19
  バッチ処理を記述できるのがバッチファイルだろ.
  中か外かは関係ない.

  951 :デフォルトの名無しさん:2004/12/18 22:10:50
  バッチからrubyを呼べば何でもできる.

  952 :デフォルトの名無しさん:2004/12/18 22:13:02
  自分でexeを作ってバッチから呼べば何でもできる.

  953 :デフォルトの名無しさん:2004/12/18 22:17:43
  @echo off
  echo main() {puts("hello, world");} > hello.c
  bcc32 hello.c
  hello

  954 :デフォルトの名無しさん:2004/12/18 23:00:27
  リネーム 年月日時分秒.

  955 :デフォルトの名無しさん:2004/12/18 23:10:19
  ファイルの日付けでリネームしようと思ったけど.
  素直にリネームソフト使った方がよさそうだね.
  年月日時分秒.拡張子 とかバッチじゃ無理っぽい.

  956 :デフォルトの名無しさん:2004/12/18 23:26:19
  日付・時刻をファイル名にする.
  set d=%date%
  set d=%d:~0, 4%%d:~5, 2%%d:~8, 2%
  set t=%time%
  if not "%t:~0, 1%"==" " set tt=%t:~0, 2%%t:~3, 2%%t:~6,2%
  if "%t:~0, 1%"==" " set tt=0%t:~1, 1%%t:~3, 2%%t:~6,2%
  echo %d%%tt%
  Wikiかなんかのまとめサイトが欲しい今日この頃.

  957 :デフォルトの名無しさん:2004/12/19 00:06:08
  コマンドの出力結果を.
  新規フォルダ作成時の.
  名前に使いたいと思ってます.
  それで下のように考えたのですが,
  (コマンド) > kakuno.txt
  md (kakuno.txtに書かれている文字列)
  この2行目はどのように書くべきでしょうか?

  958 :デフォルトの名無しさん:2004/12/19 00:11:24
  for /F "usebackq delims=" %%i in (`コマンド`) do (
    md %%i
  )

  959 :デフォルトの名無しさん:2004/12/19 00:34:07
  >>957さん.
  ありがとうございます.
  もうひとつ聞かせてください.
  do の部分で, md の後 新規作成ディレクトリへの.
  xcopy を実行するには, どのように書いたらいいのでしょうか?

  960 :デフォルトの名無しさん:2004/12/19 00:47:04
  for /F "usebackq delims=" %%i in (`コマンド`) do (
    md %%i && xcopy c:\src\* %%i\
  )

  961 :デフォルトの名無しさん:2004/12/19 00:53:09
  >>960さん.
  ありがとうございました.

  962 :944:2004/12/20 12:55:59
  >>946
  thx

  963 :デフォルトの名無しさん:2004/12/24 16:02:22
  Win98(First)で単純に1行.
  start \\192.168.*.*
  と書いてバッチファイルとして保存したもので.
  相手先の共有フォルダの一覧を開こうとしたら,
  フォルダが開かれないまま延々とループして終わりません.
  /w オプションを付加したり, 頭に @echo off を入れたり,
  2行目に cls だの pause だのを入れても同じです.
  また, 「ファイル名を指定して実行」から当該コマンドを実行しても同様の動きです.
  ただ, DOSプロンプトからバッチファイルを実行ないし同様のコマンドを実行すると.
  思った通りの動作をします.
  事前にWin98のFirstEditionで試したところ.
  正常動作して「完了」ウインドウになっていたんですが・・・.
  あと, ping \\192.168.*.* だと正常に動いて完了になるんですよね・・・.

  964 :デフォルトの名無しさん:2004/12/27 20:13:54
  共有ファイルを開くのであれば.
  net use x: \\hostname\share
  じゃないのか?

  965 :デフォルトの名無しさん:2004/12/28 22:20:42
  >>963
  バッチのファイル名を start.bat にしていると思われ.
  自分自身を呼び出すから他の名前にすれ.

  966 :デフォルトの名無しさん:2004/12/29 04:47:29
  上のほうにあったサンプル.
  @echo off
  dir c: | for /f "usebackq tokens=5" %%i in (`find "ボリュームラベル"`) do set
  LABELNAME=%%i
  echo LABELNAME=%testfile%
  を実行したところ.
  C:\>set LABELNAME=WindowsXP
  LABELNAME=
  C:\>
  となってうまくいきません. echo offしてるのになぜかコマンドが表示されてしまい.
  結果としてset LABELNAME=でうまく代入されていません. 何がいけないのでしょうか?
  環境はWinXP Pro SP2のcmd.exeです.

  967 :デフォルトの名無しさん:2004/12/29 04:49:15
  echo LABELNAME=%testfile%
  は.
  echo LABELNAME=%LABELNAME%
  の間違いでした. このコードで>>966の現象が発生します.

  968 :デフォルトの名無しさん:2004/12/29 09:12:29
  >>966
  findからfindstrに.

  969 :デフォルトの名無しさん:2004/12/29 15:16:25
  >>968
  findstrでも変わらずです・・・.

  970 :デフォルトの名無しさん:2004/12/29 16:16:14
  >>966
  うちでも同様でした. (xphome)
  dir c: | for 〜 は.
  dir c: | cmd /c for 〜 と解釈されるのかな?
  子プロセスで環境変数セットしても親には影響しないってことみたい・・・.
  パイプをやめれば正常に動きますね〜.
  dir c: > temp.txt
  for /f "usebackq tokens=5" %%i in (`find "ボリューム ラベル"temp.txt`) do set
  LABELNAME=%%i

  971 :デフォルトの名無しさん:2004/12/30 18:28:22
  自分の環境ではforの()内に日本語を入れると正常に処理できないことがあるが, 他の環境でも再現しますか?
  cmd.exe 5.0.2195.6824(2KSP3+KB835732)
  for /f "usebackq delims=" %%a in (`type %1 `) do @echo %%a
  %1がASCIIのみだと正常に処理されるが,
  %1に日本語を入れると, 「指定されたファイルが見つかりません. 」となる時がある.
  例:"C:\WINNT\グリーン ストーン.bmp"

  972 :デフォルトの名無しさん:2004/12/30 19:41:41
  半角スペースが悪さしてるわけじゃないよね?

  973 :デフォルトの名無しさん:2004/12/30 23:53:55
  >>972
  C:\>for /F "usebackq delims=" %a in (`type "C:\新規.txt"`)do @echo %a
  指定されたファイルが見つかりません.
  C:\>for /F "usebackq delims=" %a in (`type "C:\新規.txt"`) do @echo %a
  新規.txtの中身.
  とエラーが出ないことがあるので, 後ろに半角スペースを付けた.
  ここらへんも何故そうなるかが分らないんだよな.

  974 :デフォルトの名無しさん:2004/12/30 23:56:47
  cmdを極限まで極めるのとwshに早々に乗り換えるのとどっちが効率がいいですか?

  975 :デフォルトの名無しさん:2004/12/31 07:37:44
  >>974
  両方をそこそこ使えるようにするのが効率いい.

  976 :デフォルトの名無しさん:2004/12/31 08:47:14
  Cygwinのbash

  977 :デフォルトの名無しさん:2004/12/31 09:06:41
  for /f "tokens=5" %%i in ('vol c:') do set LABELNAME=%%i

  978 :デフォルトの名無しさん:2004/12/31 10:56:18
  はっきりいってバッチプログラムあまりよく知らんが,
  クライアント(Win2000)のIPアドレス・デフォルトG/W・DNSなんかを.
  変えたいんだが, クライアントの操作ユーザーがUser権限なんスよ.
  そこで, バッチプログラムでダブルクリック一発で変更させたいんだが,
  そのファイルを実行させるときだけ, Runasコマンド等で.
  一時的にAdministrator権限で動かせることはできるの?
  漏れの考え方では,
  administratorのパスワードが書いたファイルを読み込み,
  変数やら何チャラに保存し, それを使用してRunasを実行させ, cmdを実行.
  [下矢印]
  callやら何やらでnetsh等のコマンドでTCP/IPを変更する.
  [下矢印]
  最後にadministratorのパスが書かれたファイルを削除する.
  ってな事を考えてるんだけど, そもそも出来るの?

  979 :デフォルトの名無しさん:2004/12/31 13:38:00
  >>978
  できそう.

  980 :デフォルトの名無しさん:2004/12/31 14:01:56
  わかった. やってみる.

  981 :デフォルトの名無しさん:2004/12/31 19:17:04
  次のスレ助けてくれんか.
  ハッカーに聞きたい.
  http://pc5.2ch.net/test/read.cgi/tech/1104317350/

250 KB
* このスレッドは過去ログ倉庫に格納されています.
*スマホ版* 掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 05.02.02 2014/06/23 Mango Mang&uuml;&eacute; *
FOX * DSO(Dynamic Shared Object)


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/