1 名前:デフォルトの名無しさん [2008/12/22(月) 23:13:09 ] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 ◆◆ご注意◆◆ Windows板の「初心者〜管理者まで必読!コマンドライン(DOS Pt.*)」スレや PC初心者板のURLを貼りたがる人は、削除人にも認定された荒しですので その人に指示に従う必要はありません。 ◇前スレ 【.cmd】 バッチファイルスクリプト %3 【.bat】 pc11.2ch.net/test/read.cgi/tech/1217860043/ ※関連スレは>>2 あたり
83 名前:デフォルトの名無しさん [2009/01/19(月) 21:47:59 ] -------------------------------------------------------------- setlocal for /f %%A in (リストB.txt) do ( find "%%A" データA.txt echo %errorlevel% ←@ここ if %ERRORLEVEL% equ 0 (echo "%%AOK") else (echo "%%ANG") )>>.\test1.log endlocal exit /b 0 -------------------------------------------------------------- @findでサーチした値がなくてもエラーレベルが0になっちゃうんですけど>< 普通に手打ちすると値がない場合はERRORLEVELは1なのに なんでですか?
84 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:18:41 ] @echo off set X=Y set /P X=男ですか?(Y) if /i %X%==Y (echo チンコ) else (echo マンコ) なんでですか?
85 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:43:37 ] -------------------------------------------------------------- @echo off set X=Y set /P X=男ですか?(Y) if /i %X%==Y (echo 入れてください) else (echo 出してください) --------------------------------------------------------------
86 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:50:00 ] >>83 set /? して最後の方の「遅延環境変数の展開」を読めばいいと思うよ
87 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:43:24 ] echo %errorlevel% は call echo %%errorlevel%% できるが if %ERRORLEVEL% equ 0 (echo "%%AOK") else (echo "%%ANG") は call if %%ERRORLEVEL%% equ 0 (echo "%%AOK") else (echo "%%ANG") できないからな 遅延しかないかのお
88 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:00:57 ] if not ERRORLEVEL 1 (echo "%%AOK") else (echo "%%ANG")
89 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:32:49 ] fc if not ERRORLEVEL 1 (echo OK) else (echo NG) =>OKになるが?
90 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:25:15 ] for 〜 do () のカッコで括られた部分は、見た目は複数の行に分かれているが 頭の中では1行だと思ったほうがいい。 たとえば、これは・・・ for 〜 do ( find "うんこ" ちんこ.txt echo %errorlevel% ) ↓こう書いたのと同じだと考える。 for 〜 do (find "うんこ" ちんこ.txt & echo %errorlevel%) %変数% 型の変数は、1行を実行する前にまとめて置換してから実行されるので for 文を実行する前の値に置換されてから for 文が実行される。 () カッコ内で %変数% に値をセットするのは避けたほうが、混乱しないやろ。
91 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:33:43 ] 用途によっては、%errorlevel% を使わずに、&& や || で済ませるのもいいかもしれない。 for 〜 do ( find "うんこ" ちんこ.txt && echo OK || echo NG )
92 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:42:37 ] ()カッコ の中身をサブルーチン化してみた。 動作チェックしてないけど、コレでどうかな。 for /f %%A in (リストB.txt) do call :unko %%A データA.txt >>.\test1.log exit /b 0 :unko find "%1" "%2" echo %errorlevel% if %ERRORLEVEL% equ 0 (echo "%1OK") else (echo "%1NG") exit /b
93 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:08:46 ] マルチだから相手すんな
94 名前:デフォルトの名無しさん [2009/01/21(水) 17:17:16 ] マルチ先を示さないとわからんよ
95 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:27:32 ] ぐぐればわかるよ
96 名前:デフォルトの名無しさん [2009/01/21(水) 17:31:10 ] 1行書く暇があったらURL書いた方が早いだろ 何もったいぶってるんだ?www
97 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:32:28 ] 1行書く暇があったらぐぐった方が早いだろ 何もったいぶってるんだ?www
98 名前:↑こいつ基地外 [2009/01/21(水) 17:34:27 ] ↑こいつ基地外
99 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:47:40 ] ほれ ttp://www.google.co.jp/search?hl=ja&q=%E2%91%A0find%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%81%E3%81%97%E3%81%9F%E5%80%A4%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%A6 %E3%82%82%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AC%E3%83%99%E3%83%AB%E3%81%8C0%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A1%E3%82%83%E3%81%86%E3%82%93%E3%81%A7%E3%81%99%E3%81%91%E3%81%A9%EF%BC%9E%EF%BC%9C+&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
100 名前:デフォルトの名無しさん [2009/01/21(水) 18:18:31 ] マルチを告発するためにわざわざ出てきて 何が何でもマルチ先を秘匿したいとは、よっぽどの変人と見たほうがいいだろう
101 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:20:46 ] 変人というか暇人 放置推奨
102 名前:デフォルトの名無しさん [2009/01/21(水) 18:25:26 ] URL切れてるしww間抜け坊主 そんなもの修復してまでやるやつはいないよ
103 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:55:50 ] >マルチを告発するためにわざわざ出てきて ちがうだろ? 親切だろ?
104 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:58:59 ] マルチがばれて必死だなwww
105 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:01:22 ] 解決済なのに?
106 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:15:41 ] >>93 だけど、なんかみんな必死だな ちなみに>>93 以外書いてない 【マジレス】超初心者の質問に答えるスレ107【エスパー】 pc11.2ch.net/test/read.cgi/win/1231949598/#295-297 レス番のリンクの貼り方分からんけど、これでいけるか?
107 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:16:41 ] (´・ω・`) pc11.2ch.net/test/read.cgi/win/1231949598/295-297
108 名前:デフォルトの名無しさん [2009/01/21(水) 21:10:02 ] #295-297←なんだこれ 2chスレのURLもまともに貼れないアホ
109 名前:デフォルトの名無しさん [2009/01/21(水) 21:18:45 ] というかすべて終わってからマルチ報告しても意味無いだろ
110 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:27:30 ] パンツ見えてますよ チャック開いてますよ ウンコついてますよ カツラずれてますよ 臭ってますよ みたいな効果が期待できる
111 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:29:40 ] お姉さんパンツ見えてますよ
112 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:31:47 ] すでにパンツ見えてしまってから報告しても意味無いだろ
113 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:50:39 ] というかすべてパンツ見てしまってから報告しても意味無いだろ
114 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:06:59 ] ふぅ お姉さんパンツ見えてますよ
115 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:46:52 ] お嬢さん、亀の子タワシ見えてますよ
116 名前:デフォルトの名無しさん [2009/01/22(木) 00:08:15 ] 見苦しいな
117 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:43:13 ] なんだこのスレ 明らかに荒らしがいる
118 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:46:04 ] >>108 html知らないアホ 直後のレスも見れないアホ このレスを叩くアホ
119 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:48:33 ] >>>108 >html知らないアホ ぷっ
120 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 06:52:24 ] pc11.2ch.net/test/read.cgi/win/1231949598/#295-297 wwwwww
121 名前:デフォルトの名無しさん [2009/01/22(木) 06:55:33 ] >>118 こういう書き分けでいいですか?w htmlを知らない人用URL pc11.2ch.net/test/read.cgi/win/1231949598/295-297 htmlを知ってるツーの人用URL pc11.2ch.net/test/read.cgi/win/1231949598/#295-297
122 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 07:28:42 ] html で範囲指定とかできるわけないし
123 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 08:54:00 ] できるよ
124 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 09:02:43 ] 2chそのものがhtmlで表示してるんですけど。
125 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 12:20:54 ] なんかひとり必死なのがいるね バッチリ釣られてるし
126 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 12:23:37 ] 釣られてるというか、思惑通りってやつだな > このレスを叩くアホ
127 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 13:33:23 ] URLをHTMLと思ってるの?
128 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 13:43:43 ] ぐぐればわかるよ
129 名前:デフォルトの名無しさん [2009/01/22(木) 14:09:12 ] HTMLを知ってる>>118 のHTML講座の会場はここですか?
130 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 14:50:13 ] 今は URL じゃなくて URI って言うんだけどな
131 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 16:46:31 ] /⌒⌒⌒⌒⌒⌒ )) | ( 从 ノ.ノ | ( ./  ̄ ̄ ̄ ̄\ | ウリの国では URL を |:::::: ヽ 丶. | URI と言うニダ |::::.____、_ _,__) ∠ (∂: ̄ ̄| ・ー |=|・ー | \_________ ( (  ̄ )・・( ̄ i ヘ\ .._. )3( .._丿 / \ヽ _二__ノ|\ /⌒ヽ. \__/\i/\_| | ヽ \o \ | | \o \
132 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:14:58 ] ぐぐればわかるよ
133 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:26:51 ] HTML教えてやらんとわからんよ
134 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:27:28 ] ごめん、HTMLじゃなくてURLね
135 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:28:35 ] ごめん、ごめん、URLじゃなくてURIね
136 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:44:47 ] これひどくなくない? ttp://wiki.livedoor.jp/temtemtim/d/windows%20bat%A4%CE%A5%CE%A5%A6%A5%CF%A5%A6
137 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:56:24 ] if errorlevel == 1 なにこれ?
138 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:07:14 ] if ERRORLEVEL == 0ってのは0以上らしいよ
139 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:07:44 ] 最初は誰でも知らないんだよ。 少しずつ勉強して覚えれば良いじゃないか。 シロウトが趣味で書いたものを、こんなところに晒すんじゃない。
140 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:09:25 ] だからー ==なのに以上とはこれ以下に? もとい如何に?
141 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 00:10:27 ] if=errorlevel=1=echo=1 if;errorlevel;1;echo;1 if,errorlevel,1,echo,1 みたいな
142 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 01:06:27 ] でたらめを公表すれば叩かれる。公表したものには素人もプロも無い。 それが嫌な素人はチラシの裏にかいてりゃ良い。 C:\>if /? バッチ プログラム中で条件処理を実行します。 IF [NOT] ERRORLEVEL 番号 コマンド IF [NOT] 文字列1==文字列2 コマンド IF [NOT] EXIST ファイル名 コマンド
143 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 01:51:45 ] >>142 どう見てもチラシの裏じゃん。 IF ERRORLEVEL 1 ・・・ IF %ERRORLEVEL% == 1 ・・・ これをごっちゃにしちゃったんだな。
144 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:00:27 ] それで? IF [NOT] 文字列1==文字列2 コマンド のシンタクスで IF [NOT] ERRORLEVEL 番号 コマンド のセマンティクスになる理屈はわかったんかい?
145 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:04:46 ] パーザが手抜きしてるだけでしょ。
146 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:07:35 ] if errorlevel ========== 0 echo a でも通るし。
147 名前:デフォルトの名無しさん mailto:144は反応するかな [2009/01/23(金) 17:29:07 ] シマンテックス ノートンの会社か?
148 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 18:08:00 ] >>144 書いた本人に聞けよ。このスレで聞いても本人には伝わらんぞ。アホ杉
149 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:57:25 ] 間違ってる訳じゃないからいいんじゃないの
150 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 00:03:14 ] 今は動く。将来はわからない。アマチュアの作品ならこれでもいい。
151 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 09:03:56 ] >>140 だからー if errorlevel == 1 というのは if errorlevel 1 と同じだろうがw if %errorlevel% == 1 とは全然意味が違うんだよ。
152 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 10:52:20 ] アマチュアの作品発表会
153 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 11:28:14 ] SET IF=うんこ IF IF==うんこ ECHO ちんこ! IF %IF%==うんこ ECHO うんこ! IF IF==IF ECHO しっこ!
154 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 11:32:43 ] @ECHO ON fc aaa bbb ECHO 「ERRORLEVEL」 ECHO 「%ERRORLEVEL%」 IF ERRORLEVEL 1 ECHO あたりまえ IF ERRORLEVEL == 1 ECHO あら不思議! IF %ERRORLEVEL% == 1 ECHO しっこ! IF %ERRORLEVEL% == 1 ECHO ちんこ!
155 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 11:35:24 ] どうやら、 ERRORLEVEL は文字列ではない。(予約語とか関数とか特殊扱い) %ERRORLEVEL% は文字列である。 ということらしい。 よって、>>144 はうんこ!
156 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 12:41:35 ] SET IF=うんこ IF IF==うんこ ECHO ちんこ! IF %IF%==うんこ ECHO うんこ! IF IF==IF ECHO しっこ! IF IF==うんこ ECHO まんこ! IF %IF%==うんこ ECHO ちんこ! IF IF==IF ECHO ちんこ! IF IF==まんこ ECHO ちんこ! IF %IF%==うんこ ECHO まんこ! IF IF==IF ECHO しっこ! IF IF==まんこ ECHO ちんこ! IF %IF%==うんこ ECHO うんこ! IF IF==IF ECHO まんこ!
157 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 12:42:50 ] みんな if 大好きなんだなw
158 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 12:47:16 ] >>157 いやー ふぇら気持ちいいからね
159 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:58:22 ] そのパスが フォルダなら、ファイルなら の条件で分岐処理させたいんですけど ファイルタイプをチェック出来る関数はバッチコマンドにありますか? ググって調べてみたけど見あたらなくて ファイルのサイズや存在するかしないかで代用するしかない状態です
160 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:23:20 ] IF EXIST そのパス\NUL ECHO フォルダだよ
161 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:29:24 ] >>160 ありがとう
162 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:44:35 ] ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47923&forum=6&0
163 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:01:51 ] for/?
164 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:10:04 ] >>159 ローカルにあるディレクトリなら>>160 でいいけど ネットワーク上のディレクトリはNG。 この辺はかなりカオスです。 ttp://d.hatena.ne.jp/otn/20050209
165 名前:↑もう挨拶していなくなった終わった話に絡むアホ助 [2009/01/24(土) 18:18:47 ]
166 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:19:01 ] attrib/?
167 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:36:00 ] IF=EXIST=そのパス\NUL=ECHO=フォルダだよ
168 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:01:19 ] @if (0==1) rem ファイル情報出力ツール>>162 @echo off cscript.exe //nologo /e:jscript %0 exit /b %ERRORLEVEL% @end function Format(form) { for (var i = 1; i < arguments.length; i++) form = form.replace(new RegExp("\\{" + (i - 1) + "\\}", "g"), arguments[i]); return form; } function GetNewestAndOldestFiles(folder) { with (new Enumerator(new ActiveXObject("Scripting.FileSystemObject").GetFolder(folder).Files)) { var newest = item(), oldest = item(); for (; ! atEnd(); moveNext()) { if (newest.DateLastModified < item().DateLastModified) newest = item(); if (oldest.DateLastModified > item().DateLastModified) oldest = item(); } } return { Newest: newest, Oldest: oldest }; } with (GetNewestAndOldestFiles(WScript.Arguments.length ? WScript.Arguments(0) : ".")) { var n = new Date(Newest.DateLastModified), o = new Date(Oldest.DateLastModified); WScript.StdOut.Write(Format("最新のファイル\n最新ファイル名 ⇒ {0}\n更新情報 ⇒ {1}\n\n" + "再古のファイル\n最古ファイル名 ⇒ {2}\n更新情報 ⇒ {3}\n\n" + "2ファイルの間隔 ⇒ {4}日間\n", Newest.Name, n.toLocaleString(), Oldest.Name, o.toLocaleString(), ((n - o) / 864e5) | 0)); }
169 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:53:41 ] IF EXIST そのパス\*.* ECHO フォルダだよ
170 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:00:02 ] D:\Temp\tmp.exeが存在する前提で、 B:\Tempディレクトリが無ければD:\Tempディレクトリとその中身をB:へコピーして、 その後 B\:Temp\tmp.exe を起動するバッチファイルお願いします。
171 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:07:34 ] SET IF=うんこ IF IF==まんこ ECHO ちんこ! IF %IF%==ちんこ ECHO まんこ! IF IF==IF ECHO しっこ!
172 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:09:23 ] >>170 B:\Tempがあって B\:Temp\tmp.exe が無い場合は何もしなくていいのか?
173 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:10:29 ] ECHO まんこ!まんこ!まんこ! ECHO ちんこ! ちんこ! ちんこ!
174 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:12:57 ] >>172 判りにくくてすみません。 B\:Temp\tmp.exe起動は共通でお願いします。 コマンドラインのリダイレクトを追加してくださるとうれしいです。
175 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:14:58 ] でたらめを公表すれば叩かれる。
176 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:16:04 ] エェー 信用できないならやるなYO
177 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:18:18 ] B:\ とか何か懐かしいドライブレターだな。 最近見た事が無い。
178 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:19:40 ] A:\すら最近見ることは稀だ。
179 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:20:45 ] 読んでもないし試してもいない
180 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:24:08 ] 喜んでタダ働きします
181 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:26:40 ] コマンドラインのリダイレクトって何?
182 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:29:54 ] 目的はカレントを作業ディレクトリに使用するアプリを RAMディスク上に移して使用することです。 他のデバイスに埋もれないようにする為に使わないところを割り当てました。 >181 B:\Temp\tmp.exe "%0" 呼称が間違っていたらすみません。
183 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:32:15 ] 自分で調べない試さない 聞いた方が楽