- 1 名前:デフォルトの名無しさん [2008/08/04(月) 23:27:23 ]
- 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 【前スレ】 (関連スレは>>2) 【.cmd】 バッチファイルスクリプト %2 【.bat】 pc11.2ch.net/test/read.cgi/tech/1197881068/
- 112 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:29:25 ]
- 俺ならforの処理内容を丸ごとラベルに飛ばしてcallするところかな
- 113 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 23:18:56 ]
- >>112
IF おk ( CALL :OK ) ELSE ( CALL :NG ) GOTO :END NG: ECHO 次の処理へ GOTO :EOF :OK るーぷ GOTO :EOF :END GOTO :EOF
- 114 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 10:18:07 ]
- NGのラベル付け間違ってるぞ
- 115 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:41:10 ]
- 大文字やめろよ、気持ち悪いw
- 116 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:46:50 ]
- ラベルをCALLするなんて上等なことができるのか
きちんと戻るんだろうな?
- 117 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:55:57 ]
- >>116w
- 118 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:27:08 ]
- いくらなんでもこれは釣りだよな?
- 119 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:17:53 ]
- call exit
戻ってこないよー
- 120 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:29:45 ]
- call call echo なんて
- 121 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:13:51 ]
- dosのbat書いてた人にしてみれば普通の感想。
call %1 とかやって罠にはまったことのあるやつも多いだろう。
- 122 名前: ↑ mailto:sage [2008/08/29(金) 19:15:35 ]
- %1 じゃなくて %0 の間違い
- 123 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:54:05 ]
- それは関係ないだろ
%0 と書いても同じ
- 124 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:41:22 ]
- リカーシブコールで罠にはまるとか(笑)
- 125 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:48:39 ]
- 罠ってのはね〜、中でcdしてるとき相対パスで使われちゃうとか〜
- 126 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:04:53 ]
- 再帰呼び出しも出来ないマヌケw
- 127 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:15:35 ]
- そうそう、単なるサブルーチンを同一ファイルにまとめたいだけだったのに、
わけ分からん動作になってまいりましたよw
- 128 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 01:58:42 ]
- >>116
call /?
- 129 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:31:45 ]
- echo で空行って表示出来ないの?
@echo off aaa ECHO は <OFF> です。 bbb pause を実行すると aaa ECHO は <OFF> です。 bbb って表示される
- 130 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:33:38 ]
- 間違えた。こっち。
@echo off echo aaa echo echo bbb pause
- 131 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:39:45 ]
- echo=
scho\ echo[ echo] echo{ echo: echo; echo+
- 132 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:35:53 ]
- >>129
echo. だろjk
- 133 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:41:11 ]
- できた!サンキュッ!
- 134 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:01:17 ]
- つくづく、echo って、おバカな仕様ですよね。
- 135 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:10:10 ]
- ↑echoよりバカ
- 136 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 16:03:39 ]
- echo.exe
- 137 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 15:47:13 ]
- >131
横レスだがこんなんでも出来たのか。 2番目スペルミスで5番目はエラーだけど。
- 138 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:47:01 ]
- エチョー
- 139 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:41:06 ]
- エクスプローラで
chinco.txt ← これをマウスでドラッグして unko,bat ← ここにドロップする これは出来るんですが、 インターネットエクスプローラかFireFoxで表示中のWEBページの リンクをマウスでドラッグしてバッチファイルにドロップできません。 BAT でも VBS でもできません。 なにかいい方法はありませんか?
- 140 名前:デフォルトの名無しさん [2008/09/03(水) 15:50:07 ]
- ファイル名を指定して実行にはドロップできるよ
- 141 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:45:39 ]
- >>139
エクスプローラやインターネットエクスプローラかFireFoxみたいな パソコンの使い方の質問は板違い こっち↓で質問した方がいい PC初心者 pc11.2ch.net/pcqa/
- 142 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 19:20:17 ]
- このスレにしてはめずらしく正しい誘導だな
- 143 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:38:22 ]
- htaで受ける
- 144 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:49:48 ]
- このスレの住人は、wshについてどういう見解なのでしょうか?
1.バッチもWSHも両方出来る 2.バッチしか出来ない(Wshに移行したい) 3.Wshよりバッチの方が優れてる(Wshに移行するつもりは無い)
- 145 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 03:09:28 ]
- 1
- 146 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:40:39 ]
- 両方使えるが、ここがム板のバッチスレである以上
どうしてもバッチじゃ無理なところだけは例外にしても 7割以上WSHでゴリゴリやるようならスレ違いだと思ってる
- 147 名前:デフォルトの名無しさん [2008/09/04(木) 19:44:11 ]
- そもそもバッチというものはだな、
- 148 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:08:29 ]
- 俺達の未来そのものだよ
- 149 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:45:15 ]
- >>144
釣り… だよな
- 150 名前:デフォルトの名無しさん [2008/09/05(金) 01:45:43 ]
- ていうかさ、bat通り越してplとかpyとかrbとかって健全じゃないと思うんだ。
wshとかならまだいいけどさ。 batが頼りないのは誰もが承知してるんだ。 でもディフォルトで使えるのはbatかwshくらいなもんだろ? で、どっちが早く仕事できるかっつったらやっぱbat。異論は認める。 ちょっとしたインストーラなんてほんの数行から十数行で済むしさ、 エンドユーザ共にシステムフォルダにhoge.dllをコピーしてregsvr32するんだっつっても 奴らちんぷんかんぷんだからさ、ちょっとbatつけたげればそれで解決。説明するよりずっと早いわけ。 ここでさ、お前らRubyのwin32バイナリをダウンロードして、インストールしろって説明から始めよう としたら本末転倒だろ? やっぱbat。お前らこれからもbatには世話になるはずだろ?
- 151 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:11:27 ]
- del /Q *.*
- 152 名前:デフォルトの名無しさん [2008/09/05(金) 16:10:32 ]
- PROGRAM filename
というように実行するプログラム PROGRAM がありますが、 どうも filename と同じフォルダからしか実行できないみたいなんです。 そこで、以下を実行するバッチを作りたいと思います。 cd filenameと同じフォルダ PROGRAM filename を実行 cd 元のフォルダ filename と同じフォルダをどうやって取得するのか分からないので、 教えていただけないでしょうか。 または、他によい方法があれば教えていただけないでしょうか。 よろしくお願いいたします。
- 153 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:47:39 ]
- >152
まず基本的なパソコンの使い方を勉強しましょう PC初心者 pc11.2ch.net/pcqa/
- 154 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:13:34 ]
- >152
環境変数PATHを設定すれば、どこのディレクトリに居ても呼べるよ 設定の仕方はOSのバージョン毎に微妙に異なるが
- 155 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:16:50 ]
- プログラム板でパソコンの使い方を教える馬鹿
- 156 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:19:28 ]
- ↑救いようのないバカw
- 157 名前:152 [2008/09/05(金) 17:49:25 ]
- どうも説明が足りなくてすみません。
今回はパスの設定では解決しません。 PROGRAM は filename を処理して、中間ファイルを filename と 同じフォルダに吐いて、さらにそれを処理します。 PROGRAM を filename と同じフォルダで実行しないと、 中間ファイルをどこに吐いたのか分からなくなっちゃうみたいなんですよね。 ちなみに、環境変数を設定して解決するのは、 「PROGRAM のおいてあるフォルダでしかPROGRAMが実行できない」場合で、 「filename のおいてあるフォルダでしかPROGRAMが実行できない」場合では ないですよね? 引き続き、ご返答いただけないでしょうか。
- 158 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:50:20 ]
- おじいちゃんに環境変数PATHの意味と設定方法とか
バッチスクリプトについて教えているパソコン教室があるのか気になるところだな
- 159 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:05:32 ]
- >157
ああ、そういうことか。こっちこそ早とちりスマソ。 ttp://technet2.microsoft.com/WindowsServer/ja/library/97731e49-ffa3-4918-87fb-5318743f29321041.mspx とかどうよ? filenameがコマンド引数ならそのまま、そうでないならcallと組み合わせればいけるかと。
- 160 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:09:35 ]
- >>152
filenameを引数にとるバッチと仮定するとこんな感じかな pushd "%~dp1" PROGRAM "%~1" popd
- 161 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 23:17:58 ]
- set BaseDir=%CD%
cd /d filenameのフォルダ PROGLAMを実行 cd /d %BaseDir%
- 162 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:28:08 ]
- set unko="toilet"
- 163 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:08:42 ]
- あるテキストファイルから読んだ%%aは常に整数なんですが、これを計算する方法はありますか?
set /a n=%%a * 2 とかできないみたいで
- 164 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:41:45 ]
- >>163
%%aってことはテキストの読み込みにfor使ってるんだろうけど それなら計算できてないんじゃなくて参照できてないだけ setlocal ENABLEDELAYEDEXPANSION for /f %%a in (n.txt) do ( set /a n=%%a * 2 echo !n! )
- 165 名前:163 mailto:sage [2008/09/06(土) 10:08:37 ]
- へええええ
希望通りになりました どうもありがとうございます
- 166 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:28:54 ]
- こういうのはechoをonにしてループしてる部分を見れば
遅延展開してない部分が全ループで同じになってるのですぐわかる。
- 167 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 15:08:57 ]
- >>166
遅延云々なんかより先に forの中で変数展開できないのかー としか思わんだろ
- 168 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 15:38:06 ]
- 変数展開できないとは思わんでしょ。
>>164の!n!を%n%にしてると実際にまわるのは%n%が空で set /a n=%%a * 2 echo これのループになるんだから。変数参照してねーよってのがすぐわかる。
- 169 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:26:20 ]
- >>168
んー俺ならループ回す前に変数初期化するしなー set n=0 で回したら、ひたすら echo 0 でしょ なんだ、forループじゃ変数いじれないのか? と思ってしまう
- 170 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:58:33 ]
- 変数いじれないのかとか思うのは人それぞれだけど、
実際に何が起きてるかは一目瞭然じゃん? >>163は計算が出来ていないと勘違いしたみたいだけど、実際は 変数の参照が出来ていなくて全て定数を参照していたわけだから。
- 171 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:06:57 ]
- そうだそうだ
- 172 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:27:37 ]
- >>169
バカは黙ってろw
- 173 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:30:54 ]
- >>172
お前もなw
- 174 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:35:13 ]
- ん?悔しかったの?
- 175 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:51:19 ]
- 俺は>>169じゃない
- 176 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 02:43:17 ]
- まぁ一筋縄じゃいかないってことには遅かれ早かれ気付くだろうな
- 177 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 07:35:10 ]
- >>174
だっさw
- 178 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 10:43:42 ]
- >>177
お前がなw
- 179 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 11:15:02 ]
- 醜い煽り合いはやめてっ!
- 180 名前:デフォルトの名無しさん [2008/09/07(日) 13:59:33 ]
- ちょっとした軽いアプリケーションを作ったので
連続して実行したいので bat処理したいのですが あまり情報がないので質問させてください [例] hoge.exe goto hoge のように 永遠とhoge.exeを実行したいのですが どうBATファイルを組めばいいのでしょうか?
- 181 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:09:45 ]
- :hoge
hoge.exe goto hoge
- 182 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:15:23 ]
- アルゴリズウムっす
- 183 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:04:17 ]
- set counter=100
for /L %%C in (1,1,%counter%) do ( hoge.exe )
- 184 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:56:23 ]
- ウイルスか
- 185 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:40:14 ]
- gotoの情報があまりないって考えられなくね?
goto /?で大体分かるだろうし、もうちょい詳しく 知りたければヘルプとサポート見てもいい。 どっちにしろオフラインで解決できるレベルだよ。
- 186 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:41:32 ]
- ウイルスを作るつもりだな
- 187 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:49:30 ]
- >>180
× 永遠と ○ 永遠に ○ 延々と
- 188 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 04:18:27 ]
- この程度で躓く程度じゃろくなウイルスじゃない
- 189 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:05:15 ]
- batにファイルをドロップすると、ts2ts.exe(変換プログラム)というファイルに
ドロップしたファイルのフルパスを渡すbatを作ります。 ドロップしたファイルを変数に入力にはどうすればいいですか? ↓以下作ろうと思っているbat set PATH=ドロップしたファイルのパス TS2TS "%PATH%" C:\ドロップしたファイル名.ts pause exit
- 190 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:57:02 ]
- こういうことを言ってるの?
TS2TS "%~d1%~p1" "%~nx1" pause exit
- 191 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 09:27:25 ]
- こう言う事だと思う
TS2TS %1 "C:\%~n1.ts" pause exit
- 192 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 10:21:22 ]
- >>189
%0 バッチファイル本体 %1〜%9 バッチファイルに渡した引数(先頭順に) hoge.bat "C:\test\fuga.ts" とやると、 %0=hoge.bat %1="C:\test\fuga.ts" %~1=C:\test\fuga.ts %~d1=C: %~p1=\test\ %~n1=fuga %~x1=.ts 等々 組み合わせて %~dp1=C:\test\ %~nx1=fuga.ts といったような使い方もできる。詳しくはfor /?でも見れ。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:46:22 ]
- hoge.exe
%0
- 194 名前:デフォルトの名無しさん [2008/09/08(月) 17:22:58 ]
- 次のようなバッチを作りたいのです。
フォルダを指定する。 フォルダの中のbatファイル名をすべて取得する。 すべてのバッチファイルを順次実行する。 こんなことってbatファイルでできますか? 全くの初心者で、参考になるようなサイトや本、wshのほうがいいよということが ありましたらぜひ教えてください。
- 195 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:26:35 ]
- 【質問者の皆様へ】
高機能広汎性発達障害の人が不適切なレスをすることがありますが無視してください。 >>3参照
- 196 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:33:18 ]
- >194
それぐらいだったらパソコンの使い方を勉強すればできるよ PC初心者 pc11.2ch.net/pcqa/
- 197 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:39:52 ]
- >>194
バッチで出来ます
- 198 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:17:37 ]
- cd /d 指定するフォルダ
for %%i in (*.bat) do %%i
- 199 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:25:01 ]
- ↑お前いい加減 pushd 使えるようになれよw
- 200 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:26:51 ]
- 戻ること考えんでいいのに必要ないだろ。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:28:44 ]
- パソコンの使い方の話は板違い
こちらへどうぞ PC初心者 pc11.2ch.net/pcqa/
- 202 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:37:40 ]
- >>161とか笑っちゃうだろ
- 203 名前:デフォルトの名無しさん [2008/09/08(月) 20:53:06 ]
- >>198
ええwこれだけでいけるの?? ちょっとやってみる><
- 204 名前:デフォルトの名無しさん [2008/09/08(月) 20:53:53 ]
- >>196
そうなの?
- 205 名前:デフォルトの名無しさん [2008/09/08(月) 20:57:37 ]
- >>198
なんかたくさんコマンド実行してるみたい。 これじゃだめだよ><
- 206 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:16:47 ]
- >>205
ダメって何がダメなんだよ。 沢山コマンド実行したいんだろ。 先頭に@echo off入れたらおkkkみたいなボケかまさないでくれよ?
- 207 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:21:10 ]
- >>190-192
うまく作成できました。ありがとうございます。
- 208 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:22:12 ]
- >>204
9つ前のレスぐらい読んでください
- 209 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:51:48 ]
- 迷惑メールをメル友の相手と勘違いして
エッチな言葉つきで返信しちゃったんですが大丈夫でしょうか?
- 210 名前:デフォルトの名無しさん [2008/09/08(月) 21:53:35 ]
- ここ変な人しかいないね。
pg以前の問題だ。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:54:22 ]
- ただ変なの湧いてきただけだよ
- 212 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:13:48 ]
- >>210
> ここ変な人しかいないね。 わざわざ便所のドアを開けて ここウンコしてる人しかいないねというようなもの
|

|