1 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:20:20.25 ] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %7 【.bat】 hibari.2ch.net/test/read.cgi/tech/1298873550/ 【.cmd】 バッチファイルスクリプト %6 【.bat】 hibari.2ch.net/test/read.cgi/tech/1277465356/ 【.cmd】 バッチファイルスクリプト %5 【.bat】 pc12.2ch.net/test/read.cgi/tech/1242268171/ 【.cmd】 バッチファイルスクリプト %4 【.bat】 pc12.2ch.net/test/read.cgi/tech/1229955189/ 【.cmd】 バッチファイルスクリプト %3 【.bat】 pc11.2ch.net/test/read.cgi/tech/1217860043/ 【.cmd】 バッチファイルスクリプト %2 【.bat】 pc12.2ch.net/test/read.cgi/tech/1197881068/ 【.cmd】 バッチファイルスクリプト %1 【.bat】 pc11.2ch.net/test/read.cgi/tech/1178281991/
234 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:35:38.57 ] そんなこといったらバッチファイルも言語じゃないだろ
235 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 20:02:33.21 ] >>234 じゃバッチファイルの言語はなんだ?言ってみろ
236 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:14:32.23 ] バッチ
237 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:01:34.34 ] バッチは基本的にコマンドの羅列でしかないので厳密には言語じゃないけど、 一般的には言語(スクリプト)として扱われることが多い・・・てことじゃない? unixのシェルスクリプトも同じ扱い。
238 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:48:51.96 ] >>228 thx!!!!!ありがとうございます!! バッチファイルを今まで書いたことなかったので お願いしたのだけれど、やっぱり機能追加とかしたいので結局自分でも覚えなきゃいけないな・・・ 仕事でバッチを頻繁に使うわけでもないので若干面倒臭い。。 >>232 >>233 すみません、語彙力不足で・・・。 上でお願いしたようなことが出来るのなら言語じゃなくても何でも良いです。 ただ共有して使うつもりなのでインストールとかが必要なものは面倒なので要らない感じです。 WSHってのでバッチよりサクッと出来るならその方が個人的には嬉しいです。
239 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:23:21.05 ] 最近スレの質が下がったな 日本語変なやついるし 検証もしないで出来ないとか無理とかいうやついるし 全角英字とか()
240 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:35:01.96 ] 出来ないというか普通はsedとか使うんじゃないの
241 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 00:32:18.73 ] >>239 出来ると思うならやってみろよ
242 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 08:41:46.72 ] 出来ると思うならやってみろよ(キリッ
243 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 17:46:44.38 ] どうでみいいから好きにしてよ(キリッ
244 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 23:02:47.57 ] 出来ないと思うなら証明してみろよ(キリッ
245 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 23:39:38.13 ] うちも履歴が止まったが保存日数減らしたら再開したわ
246 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 00:15:34.97 ] このスレはあなたにとって役に立ちましたか? ○ 非常に役にたった ○ 役にたった ○ どちらともいえない ○ 役に立たなかった ○ 全く役にたたなかった
247 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 01:56:16.55 ] 非常に腹がたった
248 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 11:58:38.57 ] ユーザー名がtestであるときに cd C:\Users\testと打たないで cd /~test見たいな感じでC:\Users\testに移動できる書き方ってありませんか?
249 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 12:13:54.46 ] エスパー回答 cd %USERPROFILE%\test
250 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 12:42:02.05 ] 宇宙飛行士じゃないけど cd /d %USERPROFILE%
251 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 12:53:08.99 ] ありがとうございます!
252 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 13:01:01.75 ] pushd使え
253 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 13:04:50.44 ] pushdとpopdっていうのがあるんですね これ便利ですね!ありがとうございます!
254 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 06:25:29.84 ] hogehogeという名前のフォルダを右クリックの「送る」に登録したバッチファイルに送ると、 WinRARで圧縮すると同時に圧縮したファイル名の先頭にその時の日付と時刻を 「(yy-mm-dd_hh-nn) hogehoge.rar」 このように追加したいのですがどういう書き方をすれば良いでしょうか?
255 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 07:16:57.68 ] cd /d "%~dp1" set "ymdhm=%date:~2,2%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%" set "path=%path%;C:\Program Files\WinRAR" winrar a "(%ymdhm%) %~nx1.rar" "%~nx1"
256 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 10:14:55.58 ] "C:\Program Files\WinRAR.exe" a -ag+{(}YY-MM-DD_HH-MM{) } "%~1"
257 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 11:03:26.79 ] 7-zipを使っております c:\code\の中のファイルで新しく更新されたファイルのみを c:\backup.7zに追加・更新したいのですが それを手動でやってたのですがバッチファイルでこういうのをクリックしたら自動的にできるようには出来ませんか?
258 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 12:56:16.55 ] hh.exe ms-its:C:\Program Files\7-Zip\7-zip.chm::/cmdline/syntax.htm
259 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 15:06:31.79 ] >>255 完璧に動きました。 バックアップ用に使います。最高です。 ありがとうございました。 >>256 WinRAR自体に日付と時刻をファイル名に付加するパラメータがあったんですね。 ありがとうございます。
260 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 15:51:50.41 ] >>259 pushd "%~dp1" "C:\Program Files\WinRAR\WinRAR.exe" a -ag+(YY-MM-DD_HH-MM) " %~nx1.rar" "%~nx1"
261 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 11:18:59.37 ] Windows8でコマンド使おうとすると いつまでバッチ使ってるんだPowerShell使えやって警告が出るみたいだな Windows9あたりでcmdは廃止になるかもしれないな
262 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 18:19:04.70 ] なんのために?
263 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 18:30:20.91 ] PowerShellってvista以降なら標準で入ってるものですか? もし標準で入っているならPSに移行してみたいですが
264 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 20:34:51.75 ] >>261 mjd?batしか使かった事ないし腹立ってきた。 PowerShellとか難しそう
265 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 20:36:13.45 ] エディションによる
266 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 22:04:24.96 ] homeエディションなら問題ないですかね?
267 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 22:38:42.34 ] homeエディションなら問題なく入ってない
268 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 13:11:33.76 ] バッチファイルのソースによく書かれている nx〜〜とかってどういう意味ですか?変数とは違うものなんでhそうか あと~~みたいな上の方に出てるニョロニョロと、dpってやつが何者なんでしょうか。 初心者の質問ですみません・・・。
269 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 13:54:52.82 ] ntcmds.chmのバッチ パラメータを使用するを読むんだ
270 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 15:43:44.64 ] batファイルを為まくってたのに努力が水の泡になる困った PSに移行するべきかRubyとかPerlとかPythonを使うべきか
271 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 15:46:05.16 ] >>270 ほんとそうだよな。せっかく今まで覚えてシコシコ作りまくってたのに 腹立つわマジで
272 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:26:22.70 ] command.comはなくなるだろうが、cmd.exeがなくなるものか、あほども
273 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:41:16.63 ] >>269 バッチファイル初心者だから、ntcmds.chmって何だろうと思って 調べてみたんだが、コマンドのヘルプみたいなもんか。 Win7では日本語のヘルプは無いらしい・・・。 本当にPowerShellっての覚えた方が良いってことか d.hatena.ne.jp/IIJIMAS/20101101/1288542425#c
274 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:43:43.01 ] 俺もRuby,Perl,Pythonで書きたいところなんだが 会社のマシンってこいつらが標準でインスコされてないことがあるんだよな…
275 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:49:09.86 ] >>274 「ウィルスの危険性があるので導入は認めませんキリッ」(by糞管理部門)
276 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:49:35.83 ] >>272 どういうことですか? 2つはOSによって名前が違ってますが片方がはいっているものではないのですか? なくならないんですか?
277 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:50:31.25 ] プログラミングできない人が多い会社(おれ以外プログラミングってなに?レベル)の場合HSP導入するべき?
278 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 17:06:34.98 ] >>277 HSPはあくまでゲーム製作用スクリプトの趣が強いかと とりあえずはWSH辺りが相場なんじゃないかね
279 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 17:37:56.28 ] >>273 for /?
280 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 18:01:03.13 ] >>276 command /?
281 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 18:45:15.02 ] WSHってPower shellに置き換えられる過去の遺産になるんじゃないっけ
282 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 18:48:03.85 ] すれ違い
283 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 07:08:39.26 ] ちょっと変な質問ですが start myprog のコマンドはstartですが myprog でmyprogを実行する(暗黙の)コマンド名ってなんて言うんでしょう 別のスクリプトで start("myprog") => start myprogを実行する と一緒に s = exec("myprog") => myprogを実行して出力を返す s = run("myprog") と言ったメソッドを定義したいんですがその名前は何がいいのかなと
284 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 08:15:27.21 ] >>284 大雑把な説明だけど。 myprogがOSからみて実行ファイル(.exe、.com(笑)等)であればOSのプロセス管理機能の 管轄で実行されるので、特に暗黙のコマンドというものはない。 myprogがデータファイル(.txt等)であれば、OSに登録されている拡張子割当を元に 該当プログラムに"myprog"をパラメータとして勝手に渡して実行してくれる。 拡張子に割り当てられたプログラムが暗黙のコマンドになる。 (バッチファイルもこのパターンに相当する) どちらの場合もstartコマンド有無は特に関係ない。 後者のパターンで"start myprog"を実行した場合でも、startコマンド実行後myprogに割り当てられた プログラムが起動してmyprogがパラメータとして渡されるので、この場合も「暗黙のコマンド」が存在することになる。 拡張子割当の検索はバッチの範疇では無理・・・だと思う(レジストリを見なきゃならん)。 見当違いなことを言っていたらごめん。
285 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 09:24:59.10 ] 拡張子割り当てはassocとかftypeとか?
286 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 15:57:27.19 ] >>284 アンカミス 見当違い >>283 >start myprog >のコマンドはstartですが の引数もコマンドです。 >myprog >でmyprogを実行する(暗黙の)コマンド名ってなんて言うんでしょう myprogです。
287 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:08:03.54 ] >>284 callだよーん
288 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:17:40.95 ] C:\doc1.0\bin C:\doc2.0\bin という二つのパスがあります このうち前者のほうをシステムのパスに登録しているのですが batファイルでパスを後者に切り替えるにはどう書くのでしょうか?
289 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:21:27.08 ] set path=%path:C:\doc1.0\bin=C:\doc2.0\bin%
290 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:31:54.97 ] 289様ありがとうございます pathはC:\doc1.0\bin以外にもjavaなどのパスやらインストールしたソフトが勝手に登録したパスもありますが ご教示いただいたコードのC:\doc2.0\binの部分にそれらを足したほうがいいのでしょうか? それともC:\doc1.0\binというパスを見つけたらC:\doc2.0\binに置換するという動作でしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 19:59:48.22 ] set /?
292 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 17:54:49.91 ] batファイルを起動してから毎時00分に指定したdosコマンドを実行したいのですがタスクスケジューラを使わずにbatファイルでできますか?
293 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 18:09:19.93 ] %TIME%の分を取り出して比較して これを繰り返せばよい 適当に待ちを入れて
294 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:44:52.61 ] :loop sleep 60-現在の秒数 タスクを実行 goto loop
295 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:04:41.04 ] 'sleep' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
296 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:09:40.73 ] waitfor sleep /t 60-現在の秒数
297 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:12:44.67 ] 'waitfor' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
298 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:25:22.75 ] msg %username% /time:60-現在の秒数
299 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:38:21.08 ] 送信するメッセージを入力してください。メッセージの入力を終了するには、改行してか ら、Ctrl+Z キー、Enter キーを押します。
300 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:38:48.90 ] 送信するメッセージを入力してください。メッセージの入力を終了するには、改行してか ら、Ctrl+Z キー、Enter キーを押します。 ^Z セッション名の取得エラー 1702
301 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:55:48.28 ] msg * /time:60-現在の秒数 sleep
302 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:18:03.47 ] セッション名の取得エラー 1702
303 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:34:43.64 ] :loop if not 60-現在の秒数 == 00 goto loop タスクを実行 :loop2 if 60-現在の秒数 == 00 goto loop2 goto loop
304 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:46:53.69 ] コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。 コマンドの構文が誤っています。
305 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:48:02.09 ] 役立たずばかりだな
306 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:50:05.81 ] おまえの役に立ってたまるかぼけ
307 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 01:00:26.80 ] おれんちはsleepあるからいいよw
308 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:30:14.31 ] 1秒スリープ echo WScript.Sleep(1000) >sleep.vbs cscript //Nologo sleep.vbs
309 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:33:07.77 ] >>294 >>296 osのバージョンによっては入っていないんだな >>301 セッション名の取得エラーって知っているか? >>303 アホか負担が高すぎる >>307 何も解決してない答えだな 汎用性がないわ >>308 これは使えるな
310 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:24:06.28 ] 厳密じゃなくて適当に1秒待ちで良いなら ping -n 2 127.0.0.1 1>nul OS制限はまず無いし
311 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:06:16.93 ] start /wait "" mshta vbscript:Execute("GetObject(""winmgmts:{impersonationLevel=impersonate}""). ExecNotificationQuery(""select * from __InstanceModificationEvent where TargetInstance isa 'Win32_LocalTime' and TargetInstance.Minute = 0 and TargetInstance.Second = 0"").NextEvent:Close")
312 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:15:53.25 ] pingは環境によってFWでブロックされて止まってしまう
313 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:24:34.55 ] アホには>>303 がちょうどよいw
314 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:41:31.13 ] mshta javascript:setTimeout('close()',10000)
315 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 10:04:22.81 ] そもそも最初は、「毎時00分に」なのに「00秒に」と誤解した上に、途中から「1秒待ち」の話になってる。 へぼプログラマがバグを作りこむ理由の一端がわかった気がする。
316 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 15:37:58.48 ] 応用のできないアホはスルーで
317 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 15:40:21.60 ] msまで追求するのが漢道
318 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:12:00.10 ] >>315 へぼプログラマがバグを作りこむ理由の一端がわかった気がする。
319 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:19:17.93 ] >>316 応用? 00分の検出と、1秒待ちってぜんぜん違う機能だぞ。 どう応用するのか、見せてもらえるかな?
320 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:26:48.84 ] >>319 なんでその2つを同じ階層で考える?
321 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:32:09.01 ] 応用のできないアホはスルーで
322 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:36:30.86 ] まぁまぁ落ち着けよお前ら 一番悪いのは>>303 なんだから
323 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:50:30.16 ] >>320 え゛っ、応用じゃないの? (w 応用見せてみと言うと階層が違うとか、なんだかねぇ。
324 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:00:38.70 ] おい単芝vipに帰れよ
325 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:21:54.10 ] HP機だと c:\hp\bin\sleep.exe が使えるよ
326 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:25:01.24 ] >>324 お前が帰れよ、つーかででくんな。
327 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:32:56.02 ] powershell start-sleep
328 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:42:28.32 ] 'powershell' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
329 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:43:43.94 ] 'c:\hp\bin\sleep.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
330 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:01:18.78 ] hpの事なんて聞いてねえよ!
331 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:05:48.99 ] おまえなんかに言ってないよw 自我肥大するんじゃねーよw
332 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:10:10.73 ] 自我肥大はスルーで
333 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:18:48.73 ] pause /t:n
334 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:59:17.74 ] >>292 やったな、おい!大漁じゃねーか!雑魚ばっかりだけど!
335 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:35:05.56 ] これってそんなに難しい質問なのか
336 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:45:48.84 ] 応用のできないアホには
337 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 03:33:48.01 ] choice /t 10 /d y
338 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 03:47:51.65 ] diskpart /t 15
339 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 05:32:44.27 ] >>333 続行するには何かキーを押してください . . . >>337 'choice' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 >>338 DiskPart はパラメータを処理できませんでした。 詳細については、'diskpart /?' を使用してください。
340 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 09:26:48.83 ] cmd.exe組み込みコマンドと同名のプログラムがPATH中に存在するとき、 組み込みコマンドを指定する方法はありますが? mkdirはmdに変更することで逃げられますが、この方法が使えないとき はどうすればいいでしょうか?
341 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:42:17.35 ] 似たような機能のtoolを入れる
342 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 14:41:11.23 ] >>340 うそこけ 組み込み優先でないってか?
343 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:03:37.77 ] >>341 それすると何がどうなるって?ばかか
344 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:30:39.06 ] >>340 逆ならいくらでもあるが
345 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:39:27.54 ] >>340 setlocal set path= 組み込みコマンド endlocal
346 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 17:28:38.33 ] >>342 うーん。試してみたらコマンドプロンプトは組み込み優先でした。 実はnmakefileの中だったのです。>>345 を採用することにしますた。 set path= & 組み込みコマンド
347 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 17:35:24.19 ] 最初からそう言え cmd /c 組み込みコマンド
348 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 22:14:14.00 ] timeout /t 10
349 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 06:18:57.26 ] NDWord: /t
350 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 10:59:35.06 ] 'NDWord:' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
351 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:48:26.59 ] 整合性レベルの低で起動する簡単な方法ないですか?
352 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:57:18.84 ] %~tIは更新日時のようですが、作成日時は取れないんですか?
353 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 13:30:43.72 ] start /low
354 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 13:56:05.67 ] for /f "usebackq tokens=1,2*" %i in (`dir /tc "%~f1"^|find "%~nx1"`) do (set a=%i%j&call echo %a%)
355 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 14:04:16.98 ] %i%jじゃ繋がっちゃうだろ
356 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:16:09.49 ] "%~nx1"が"ファイル"だとだめだろ
357 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:24:25.23 ] "eol= "ってやればうまく行きそうだが、行かん。遺憾だ
358 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:39:46.47 ] eol=の仕様は謎だな
359 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:46:13.61 ] findstr /r /c:"^[^ ].*%~nx1"
360 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:59:25.95 ] for /f "usebackq tokens=1,2*" %i in (`dir /tc "%~f1"^|find "%~nx1"`) do (if not defined a set a=%i %j&call echo %a%)
361 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:05:59.46 ] だからー "%~nx1"が"ディレクトリ"だとだめだろ
362 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:08:54.13 ] find "/" がええかも
363 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 23:34:25.37 ] for eolでggったら"delims= eol= "でいいみたいね
364 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 01:56:38.52 ] そのじゃディレクトリの作成日時は取れんな
365 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 12:30:43.59 ] start cmd /c pause とすれば、別プロセスで開始したコマンドの終了を待たずに次に進めるけど、 (start cmd /c pause & start cmd /c pause) | sort などとパイプすると、startしたアプリをすべて終了するまで次に進まなくなってしまうのを回避する方法ありません? (start cmd /c pause & start cmd /c pause) > hoge.txt リダイレクトなら普通に次に進めるのですが…
366 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 16:12:04.51 ] 意味不明だな (start cmd /c pause & start cmd /c pause) | sort で止まるのは当然だろw何がしたい? start cmd /c "pause | sort" とか?
367 名前:365 mailto:sage [2011/11/23(水) 17:35:31.29 ] >>366 確かにそのスクリプトじゃ何がしたいのか意味不明だけど、ようは、 [a.cmd] Echo 処理1開始 Rem 処理1 Echo 処理2開始 Rem 処理2 Echo 処理3開始 start "" "重い処理3cmd" Echo 処理4開始 start "" "重い処理.4cmd" pause exit /b ってのがあって、そのスクリプトに対し、 call a.cmd | tee "log.log" 的なことをしたのです。 a.cmd 内では、pause まで進むのにもかかわらず、 重い処理3cmd, 重い処理4cmd が修了するまで、 call a.cmd | tee "log.log" の次に進みません。 call a.cmd だけなら問題なく次に進むのだけど、何でそうなるのかが自分にはよくわからんのです。
368 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 18:33:00.23 ] こういうこと? ttp://scripting.cocolog-nifty.com/blog/2007/09/messagebox_5566.html
369 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 18:45:04.00 ] >ProcessStartInfo.UseShellExecute=trueでプロセスを起こすと、 >ファイルハンドルを引き継がないようです。 ってことは ショートカット作って start "" "重い処理3cmd.lnk" だな
370 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:55:29.35 ] rundll32.exe url.dll,FileProtocolHandler "重い処理3.cmd" でもええんじゃね
371 名前:365 mailto:sage [2011/11/23(水) 22:04:00.88 ] >>368-369 ありがとうございます!! > ttp://scripting.cocolog-nifty.com/blog/2007/09/messagebox_5566.html > どうもパイプの前のプロセスにパイプのハンドルの複製が残っているのでは? なるほど… ショートカットで、ばっちし うまく動きました。
372 名前:365 mailto:sage [2011/11/23(水) 22:12:02.17 ] >>370 なるほど! 手っ取り早くてイイですね!
373 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 20:05:50.79 ] cmd.exeのバグだな
374 名前:デフォルトの名無しさん mailto:sge [2011/11/24(木) 23:51:22.85 ] そうだな
375 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 19:02:04.82 ] hou 窓の杜 - 【REVIEW】UnixのコマンドをWindowsのコマンドプロンプトで利用可能にする「Gow」 www.forest.impress.co.jp/docs/review/20111206_496043.html
376 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 21:04:34.69 ] コマンドプロンプトで使えても、複数行の引数とかで困りそうな…
377 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:05:30.91 ] お願いします。 Windows7です。 host.txtが <ホスト名A>,<IPアドレス> <ホスト名B>,<IPアドレス> というようなパターンで記載されております。 キーボード入力→入力を変数に格納(%host%)。 ・変数%host%と一致する行を、host.txtの1列目から探す、見つかったら一致する行の2列目を変数ipに格納 という処理を行いたいのですが、まったく方法が思いつきません。 お知恵を拝借いたしたく。 よろしくお願いします。
378 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:30:42.76 ] set /p host="> " for /f "tokens=1,* delims=," %%a in (host.txt) do ( if "%%a" == "%host%" set "ip=%%b" ) echo %ip%
379 名前:377 mailto:sage [2011/12/15(木) 00:03:14.03 ] >>378 勉強になります。そのまま使わせていただきます。 ありがとうございます。
380 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 08:11:06.17 ] Windows2008使用です。 バッチ上から、システム環境変数(本来、マイコンピュータ右クリックでたどっていって編集するもの)を編集したいです。 reg add で編集(追加)はできるんですが、同じバッチ内(コマンドプロンプト内)では、反映されてません。 これを反映させられるようにしたいです。 pathを編集したいわけじゃないので、フルパスにしたからといって解決するものでもないです。 どなたかご存知の方いらっしゃいましたらご教授お願いします。
381 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 09:34:10.72 ] >set /?
382 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 09:58:29.01 ] 馬鹿登場
383 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 10:26:35.05 ] reg addしたものと同じものをsetしなおすのが手っ取り早いとは思うけどな。 start "" cmd.exe /c "%~0" %* とかやって独立したプロセス立ち上げると環境変数って新規のが使われるんだっけ? そうなったら今度はローカルで変更した環境変数まで消えちゃうんだけど。
384 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 14:42:17.97 ] setx/?
385 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:15:10.74 ] 'setx' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
386 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:59:03.37 ] setx.exeはServer 2003以降、Vista以降で有効の模様。2000/XPでは使えない。
387 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 18:26:27.91 ] 2000/XPは使わない。
388 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 11:08:09.34 ] すいません以前ここでcdは使うな。代わりに○○を使えって教わったのですがそのコマンドが忘れました どなたか教えてください
389 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 11:24:55.46 ] >>252-253 か? 別にcdでもいいよ
390 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 11:41:51.36 ] cd /d かもよ
391 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 11:58:44.93 ] pushdとか?
392 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 12:45:07.22 ] >>389-391 先生方ありがとうございます それです
393 名前:デフォルトの名無しさん [2011/12/26(月) 18:39:34.18 ] hoge_012.txt hoge_12345.txt hoge_abcd.txt みたいなファイル名のファイル群から、hoge部分を消したいんですが どう書けばいいですか? ren hoge_*.txt _*.txt ってやると _oge_012.txt _oge_12345.txt _oge_abcd.txt とリネームされました 期待する結果は _012.txt _12345.txt _abcd.txt です
394 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 22:06:51.92 ] >>393 ファイル名の先頭のhogeを除去したいなら for /f "tokens=1,* delims=_" %%a in ('dir /a-d /b ^| findstr /r "^hoge.*_.*"') do (echo "%%a_%%b" "_%%b") こんな感じかな ファイル名のどこかのhoge部分を除去したいなら、置換を利用して for /f "delims=" %%a in ('dir /a-d /b ^| find "hoge"') do (call :renhoge "%%a") goto :eof :renhoge set "name=%~1" set name=%name:hoge=% echo "%~1" "%name%" set name= goto :eof こんな感じかな リネームするときはechoをrenに置き換えてね
395 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 22:24:34.78 ] >>394 できました!ありがとう ワイルドカードで簡単に出来るものだと思ってました
396 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 16:34:39.16 ] できるよ
397 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 01:02:03.81 ] カレントフォルダにあるすべてのファイルに対して AABBBtxt→AA-BBB.txt AACCCtxt→AA-CCC.txt のように3バイト目にハイフンを入れたいです。 AAは必ず同じ文字列となります。 ren AA* AA-* としたらAA-BB.txtとなりBが1個きえてしまいました。 どのようにしたらよいでしょうか
398 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 01:08:57.22 ] まず set x=AABBBtxt をAA-BBB.txtに変えてみな それができればあとはできるだろ?
399 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 02:20:05.30 ] > 3バイト目にハイフンを入れたいです。 set a=%~1 set b=%a:~0,2%-%a:~2% echo %b%
400 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 02:22:35.04 ] > AAは必ず同じ文字列となります。 set a=%~1 set a=%a:AA=AA-% echo %a%
401 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 11:18:02.60 ] batファイルからカラーダイアログを呼び出せることって無理ですか?
402 名前:397 mailto:sage [2011/12/29(木) 00:13:43.43 ] >>398-400 ループ処理が難しそうですが、なんとかできそうです。 ありがとうございました。
403 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 02:26:05.21 ] mshta "about:<script>function b(){new ActiveXObject('Scripting.FileSystemObject' ).GetStandardStream(1).Write(d.ChooseColorDlg().toString(16));close();}</script> <body onload='b()'><object id='d' classid='clsid:3050f819-98b5-11cf-bb82-00aa00b dce0b'></object></body>"|more
404 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:14:43.54 ] 【質問】 ・1-18までカウントしていく関数(サブルーチン?)を作りたいです。 調べて自分なりに試しているのですが、上手くいかずに行き詰ってしまいました。 下記のように、1-9までは01-09のように0を付加して表示したいです。 01/18 処理結果 02/18 処理結果 【 OS 】 ・Windows XP Professinal SP3 【構文】 SET /A CNT = 1 SET /A IND = 18 CALL :ZERO %CNT% :ZERO IF "%1" LEQ "9" ( SET /A DD = %1 SET /A DD += 100 SET /A ABC = %DD:~-2% ECHO %DD:~1,2%/%IND% SET /A CNT+=1 ) EXIT /B よろしくお願いします。
405 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:07:34.22 ] > 1-18までカウントしていく関数(サブルーチン?)を作りたいです。 仕様がよくわからん。18超えたらどうするの? 01,02,03,・・・17,18とechoさせたいわけじゃないよね? 処理結果とあるけど、別の処理をループさせてのカウントかな? だとすればわざわざサブルーチンにしなくても set CNT=101 で101-118をカウントして %CNT:~-2% で表示させればいい @echo off set CNT=100 :loop set /a CNT+=1 echo %CNT:~-2%/18 echo 処理結果 if not %CNT%==118 goto :loop pause
406 名前:450 mailto:sage [2012/01/05(木) 18:39:55.01 ] >>405 レスありがとうございます。 教えていただいた方法でできるようになりました。 どうもありがとうございました! SQLiteのVACUUMとREINDEXのバッチ作成の際に、01/18: ファイル名.拡張子 と表示して、 現在何個あるうちの何番目を処理中かどうか、というのを表示させたく作成中でした。 その際に、1-9までについては先頭に0を付加したかったのですが、書式的なもののやり方 が分からずにいました。 ※1/18ではなく、01/18のように。 【バッチ内容】 SET ADDONS = addons.sqlite SET /A CNT = 100 SET /A IND = 18 CALL :loop %CNT% %ADDONS% REM ここに 01/18: addons.sqlite と表示させたい。 sqlite3.exe ..\..\%ADDONS% VACUUM sqlite3.exe ..\..\%ADDONS% REINDEX :loop SET /A CNT += 1 ECHO %CNT:~-2%/18: %2 EXIT /B 【希望結果内容】 01/18: addons.sqlite
407 名前:404 mailto:sage [2012/01/05(木) 18:43:23.40 ] >>404 です。 >406の名前欄が間違っていました。 失礼しました。 ※教えていただいてできたので良かったのですが、 >>404 でなぜうまく動作しないのか謎でモヤモヤが。 どうもありがとうございました。
408 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 21:09:16.86 ] >>407 if "12" leq "9" echo 文字列の比較は一桁目から
409 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 21:11:30.07 ] ×一桁目 ○左
410 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 22:31:16.99 ] コマンドプロンプト上で for /L %i in (1,1,10) do @(set /a 123) とやると 123123123123123123123123123123 と改行挟まずに出力されるんですが、これのメカニズムを誰か説明してください。
411 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 22:46:19.69 ] set が改行を剥いでいるんじゃね。 set /P とかで、入力は改行で終了するだろうけど、結果には改行が入っていない方が便利だし。
412 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:14:53.08 ] setが改行を出さないだけだろ
413 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 19:02:34.30 ] :loop execcommand sleep 600 goto loop というループがあって 真ん中あたりでユーザーがその挙動を変えられるようにしたいんだけど 何も入力がなければループを妨げない、 入力があったらキーを set key=? して call :setoption するにはどうすればいいでしょう。
414 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 19:47:08.87 ] >>413 www.vector.co.jp/soft/dos/util/se053514.html こういうツール使うとか これがまともに動くかどうかわからないから試してダメだったら 似たようなの探すか、作って配布してくれ
415 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 20:36:27.20 ] choice/?
416 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 22:04:41.80 ] tomeout/?
417 名前:デフォルトの名無しさん [2012/01/12(木) 22:42:42.89 ] treeを入れるとそのディレクトリのファイルをツリー形式で出力されますが これに加えてファイル名+サイズ名+最終更新日を出力したいのですが可能でしょうか?
418 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:00:03.63 ] dir /s を整形するとか。。めんどくさそうだけど。
419 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:03:13.11 ] vbs とかで作った方が楽かと。
420 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:18:18.22 ] バッチでは?
421 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:17:12.05 ] ttp://www1.axfc.net/uploader/Sc/so/309130.jpg ttp://www1.axfc.net/uploader/Sc/so/309131.zip こんなのどう 普通にtreeするのに比べるとめちゃくちゃ遅いけど 表示のスタイルは tree /a /f を参考に ファイルの表示は dir /a-d /t:w を行ごとに
422 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 05:19:27.39 ] >>417 www.vector.co.jp/soft/win95/util/se247619.html
423 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 06:58:49.41 ] >>422 スレチ
424 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 15:57:19.14 ] >>415-416 choiceはできそうだけど、timeoutはどう判定すんだ?
425 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 17:00:32.46 ] むりぽ
426 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 22:16:52.32 ] 画面で区別できんだからバッチでもできるっしょ
427 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 02:31:56.51 ] だめぽ
428 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 00:23:57.26 ] %1に渡したファイルやフォルダがルートにあるのかどうかを判定するのってどう書けばいいですか? %~1が3文字だったら、とか思いついたけどもっと上手い方法だったり定石があるなら教えてください
429 名前:428 mailto:sage [2012/01/15(日) 00:25:03.61 ] 訂正します > %~1が3文字だったら %~dp1が3文字だったら
430 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 00:36:58.61 ] UNCとかにも対応したいなら set a=%cd% push .. set b=%cd% popd して比較するとか
431 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 01:41:37.76 ] "%~p1" == "\" だとダメなの?
432 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 09:17:31.43 ] >>430 ありがとうございます UNCのことはすっかり失念していました cdでUNCはカレントに出来ないと言われて困りましたけど pushd "%~dp1" で勝手にネットワークドライブの割り当てをやってくれて カレントディレクトリを移すことが出来ました >>431 それでよかったですよねありがとう pushd "%~dp1" if exist "%cd%\%~nx1" (call :ROOTEXP "%cd%\%~nx1") else echo ファイル見つからない pause exit :ROOTEXP echo "%~1" echo "%~dpnx1" if "%~p1"=="\" (echo ルートディレクトリにあるよ) else echo ルートじゃないよ exit /b 一応、これで意図した動作になりました ルートにあるファイルやフォルダの場合、echo "%~1" がZ:\\test.txt のように\\となるのですが 正常に動いてるみたいですし、"%~dpnx1"で正しいパスは取れるのですが この書き方で問題が出るケースはありますでしょうか?
433 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 20:29:01.37 ] 空きメモリか使用メモリを標準出力でゲットするコマンドないですか。 memはさすがに消滅していたw
434 名前:デフォルトの名無しさん mailto:sage [2012/01/15(日) 21:04:49.82 ] wmic
435 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 00:29:25.23 ] tasklistの各行の出力結果を合計してみるとか
436 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 03:38:43.26 ] それはねーよ
437 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 12:21:08.71 ] wmic調べてみます。ありがとうございました。
438 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 12:27:17.34 ] wmic os get freephysicalmemory
439 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:08:24.54 ] for /f %%i in ('wmic os get freephysicalmemory') do set x=%%i echo %x% ECHO は <ON> です。
440 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:35:24.25 ] for /f "eol=F" %i in ('wmic os get freephysicalmemory') do echo %i
441 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:49:41.37 ] ECHO は <ON> です。
442 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 21:14:43.83 ] for /f "skip=1" %i in ('wmic os get freephysicalmemory') do if not defined mem set mem=%i echo %mem%
443 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 23:58:50.04 ] for /f %i in ('wmic os get freephysicalmemory') do (call set x=%i) & if defined x call set mem=%i echo %mem%
444 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 03:36:44.19 ] 'wmic' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
445 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 14:12:06.16 ] Windows 2000以降のOSではWMIが標準で実装されている Windows 2000にはwmic.exeは用意されていない
446 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 15:37:33.32 ] それを言うならXP以降だろw 以降はそれも含むんだから
447 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 18:17:43.40 ] win2kはwmiコンポーネント実装済みだけどwmicは同梱されていないって事じゃね?
448 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 19:55:57.58 ] それを言うなら>>446 阿呆だろw
449 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 00:35:34.90 ] xp homeはwmic入ってないのか
450 名前:デフォルトの名無しさん [2012/01/22(日) 15:35:57.54 ] D:\MUSIC\(複数アーティスト)\(各々に複数アルバム)\Resize\Folder.jpg という階層で Folder.jpgを1つ上のディレクトリに上書き移動して、Resizeフォルダを削除したいのですがうまくできません。 ご教示いただけないでしょうか、一所懸命初めてバッチ書いてみましたがたぶん見当はずれです cd /d D:\MUSIC for /d %%A in (*) do ( cd %%A for /d %%B in (*) do ( cd %%B\Resize move /y Folder.jpg ..\Folder.jpg cd .. rd /s /q Resize ) )
451 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:36:07.61 ] >>450 cd /d d:\music dir /a-d /b /s Folder.jpg >list_fjpg.txt dir /ad /b /s Resize >list_Resize.txt 処理するファイルが上のリストで問題ないようならこれで出来ると思う for /f %%a in ('dir /a-d /b /s Folder.jpg') do move "%%~a" ".." for /f %%b in ('dir /ad /b /s Resize') do rd /s /q "%%~b" Resizeフォルダ以外にもFolder.jpgがあって上のがダメなら dir /a-d /b /s Folder.jpg|findstr /e /l /i "\Resize\Folder.jpg" >list_fjpg.txt これでたぶん大丈夫だと思うけど試してダメだったらfindstrのオプションとか工夫してみて
452 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:36:27.77 ] cdをpushdやpopdに変えて試してみてね
453 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:49:17.51 ] >>450 cd /d "D:\MUSIC" for /d /r %%a in (*) do ( pushd "%%a" call :movejpg "%%~na" popd ) goto :eof :movejpg if not "%~1" == "resize" (if not "%~1" == "Resize" goto :eof) move Folder.jpg ..\ cd ..\ rmdir resize goto :eof
454 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:51:54.76 ] jpgを拾うようにした自前のものがよく似ていたので1行目だけ編集したのを貼ってみる。 cd /d D:\MUSIC for /r /d %%i in (*) do ( if exist "%%i\resize" ( move "%%i\resize\*.jpg" "%%i" rd /s /q "%%i\resize" ) ) 趣旨が違うかもしれないが。
455 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:06:41.19 ] >>454 のを少し弄って cd /d D:\MUSIC for /r /d %%i in (*) do ( if exist "%%i\resize\folder.jpg" (move /y "%%i\resize\folder.jpg" "%%i"&&rd /s /q "%%i\resize") ) これで質問者の要求仕様を満たすんじゃね?
456 名前:450 [2012/01/23(月) 09:47:50.42 ] みなさんありがとうございます! せっかくなので環境をコピーして4つとも試してみましたがどれもうまくいきました! バッチファイルが綺麗に完走するのってピタゴラスイッチ的な爽快感がありますね
457 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:55:01.20 ] 2chブラウザのkakikomi.txtを自動で編集して、 日付データと本文部分だけを残すというbatファイルをつくりました find /v "Subject:" <kakikomi.txt >kakikomi2.txt find /v "URL :" <kakikomi2.txt >kakikomi3.txt find /v "From :" <kakikomi3.txt >kakikomi4.txt find /v "Mail :" <kakikomi4.txt >kakikomi5.txt というゴリ押しで一応目的は達成できたのですが、時間もかかるし無駄が多い気がします もっとスマートな書き方もあるのでしょうか? kakikomi.txt内の書き込みデータは、 -------------------------------------------- Date : 2012/01/01 00:00:00 Subject: スレッドタイトル URL : ... From : Mail : 本文 -------------------------------------------- のくり返しになっています
458 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:34:47.86 ] findstr/?
459 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:37:22.65 ] findstr /b /v "Subject: URL FROM MAIL" "kakikomi.txt" >"kakikomi2.txt" 本文の行頭に同じ文字列があったらその行も消えるけど>>457 よりはマシと思う
460 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 14:49:55.56 ] >>459 ありがとう!次回からは書いてくれたものを使ってみます
461 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 23:44:16.41 ] フォルダ内のtest*.batを順に実行したいのですが、10回callする毎に標準出力に メッセージを出したく思います ↓を実行すると毎回echoが実行されてしまうのですがどう修正すべきでしょうか? set /a N=1 for /F %%a in ('dir .\test*.bat /b') do ( call %%a set /a N = %N% + 1 if "%N%"=="10" do ( echo ---------- set /a N=1 ) )
462 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:15:29.97 ] >>461 echo onで実行されたバッチがどうなってるか見りゃわかるけど… 遅延環境変数でググってみ。
463 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:56:33.67 ] for /f %%a in ('dir /b test*.bat') do ( call %%a call :COUNT ) pause&exit :COUNT set n+=1 if %n%==10 (echo ----------&set n= ) exit /b
464 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:59:13.37 ] > set n+=1 set /a n+=1
465 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 09:22:44.38 ] 遅延環境変数のことを失念していました(ノ∀`) サンプルまで書いていただいてありがとうございます
466 名前: 忍法帖【Lv=5,xxxP】 mailto:sage [2012/01/28(土) 20:05:08.71 ] Vista/7などで環境変数を永続的に変えるのってCUI(cmd)じゃできないんですか? 95とかならexec.batをいじるとできるそうですがいい方法無いですかね マウスでカチカチみんな設定してるの?
467 名前: 忍法帖【Lv=5,xxxP】 mailto:sage [2012/01/28(土) 20:06:15.39 ] Vista/7などで環境変数を永続的に変えるのってCUI(cmd)じゃできないんですか? 95とかならexec.batをいじるとできるそうですがいい方法無いですかね マウスでカチカチみんな設定してるの?
468 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 20:08:12.26 ] setx
469 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 20:37:47.45 ] autoexec.batだろ
470 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 20:50:34.72 ] >>467 GUIだけどキーボードだけで設定ダイアログまで行けるぞ Windowsキー → 「環境変数」と入力 → 上に「環境変数の設定」が出て来たらEnter
471 名前: 忍法帖【Lv=5,xxxP】 mailto:sage [2012/01/28(土) 21:30:25.20 ] Vista/7などで環境変数を永続的に変えるのってCUI(cmd)じゃできないんですか? 95とかならexec.batをいじるとできるそうですがいい方法無いですかね マウスでカチカチみんな設定してるの?
472 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 21:43:58.44 ] >>469-471 >>468 で完璧な回答が出てるのに… メクラ?
473 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:00:05.37 ] exec.batってなんだよ
474 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:02:10.08 ] >>472 自分で調べる気がないってことでしょ。 スルーでいいよ。
475 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:33:43.17 ] コンソールで使える日本語TTフォントはMSゴシックしかないの?
476 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:12:38.08 ] fixed98epsonマジオススメ
477 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 20:37:29.16 ] 標準で入ってるものではMSゴシックだけ?
478 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:41:10.62 ] レジストリいじれば好きなTTフォント使える。 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont でググれ
479 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:41:35.10 ] ほんとかよ 使えなかったが?
480 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 23:24:15.61 ] 俺は使えてる、XP x64。 レジストリ微妙に何か間違ってるか、プロンプトを間違えているとか? 64bit OS で 32bit の cmd.exe を常用してる? ↓が『64bit OS で 32bit の cmd.exe 』の場合 HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
481 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 23:27:13.38 ] プッ
482 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 03:05:05.71 ] コマンドプロンプトから引数を与えたときはちゃんとaiueo.txt作れるんだけど ドラッグアンドドロップでやるとaiueo.txtを作ってくれない どうしたらD&Dで引数受け取ったとき出力をファイルに書き出せる? aiueo.bat ------------------- setlocal set a=aiueo.txt if not exist %a% (echo Aiueo > %a%) date /t >> %a% time /t >> %a% echo %1 >> %a% endlocal
483 名前:482 mailto:sage [2012/02/01(水) 03:12:11.39 ] ごめんなさい自己解決しました バッチファイルのあるフォルダじゃないとこに保存されてた・・・
484 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 04:40:16.31 ] >%~dp0%a%
485 名前:482 mailto:sage [2012/02/03(金) 03:10:09.37 ] d
486 名前:忍法帖 [2012/02/05(日) 01:47:02.01 ] --------終了-------
487 名前:忍法帖 [2012/02/05(日) 01:47:36.54 ] --------終了-------
488 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 03:25:30.09 ] 質問をさせて下さい。 親フォルダにbatを置いて実行し、batの力でそこから子フォルダ、よく孫フォルダ、たまに曾孫 稀により下のバラバラな階層にある複数の最下層フォルダを、順々にカレントディレクトリ にしたいのですが、どうやればよいのでしょうか? やりたいことは最下層フォルダにあるファイル数が10個未満の場合に その最下層フォルダを任意の場所に移動したいのです。 最下層フォルダからの個別移動に関しては最後の削除あたりがうまくいきませんでしたが それ以外はこのスレを参考にして、なんとか動かすことができました。ありがとうございます。 後は親から複数の最下層フォルダに辿り着ければ何とかなりそうなのですが… どうか知恵をお貸しください。よろしくお願いします。 個別の処理.bat for /f %%a in ('dir /a-d ^|find "個のファイル"') do ( echo %%a if %%a LSS 10 ( call :IDOU ) else ( echo 10個以上ある ) ) exit /b :IDOU echo このフォルダ内のファイル数は10個未満 for %%I in ("%~dp1.") do ( md "%%~nxI" set DNAME="%%~nxI" move *.* "%~dp0%%~nxI" move "%~dp0%%~nxI" "C:\Users\XXX\Desktop\移動先\" cd .. pause del "%~dp0%%DNAME:~1,-1%" ) exit /b
489 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 05:35:08.76 ] >>488 カレント配下のディレクトリ全てで最下層であるかどうかの判定 for /d /r %%a in (*) do ( for /f "usebackq" %%b in (`dir /ad "%%a"^|find "個のディレクトリ"`) do ( if %%b==2 (echo "%%a" の下にディレクトリはないよ) ) ) pause exit /b > 最下層フォルダからの個別移動に関しては最後の削除あたりがうまくいきませんでしたが echo on にしてみれば何が悪いか分かるはず
490 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 05:35:19.42 ] >>488 :IDOUをcallするときに引数いれてないけど、:IDOUの中で%~dp1って使う意味はあるの? それとsetするときはset v="〜"じゃなくてset "v=〜"ってしたほうがいいと思うよ そうすれば変数の中にダブルクォーテーションが入らない delのところも普通に%DNAME%と書けるようになる ところでdelのところ%の数がおかしいんじゃないか? 削除がうまくいかない原因はそれではなかろうか 最下層の判定は、そのディレクトリ内のディレクトリの個数調べればいいんじゃね ディレクトリを順に回りたければ for /d /r %%a in (*) do (pushd "%%a" 〜) とか for /f "delims=" %%a in ('dir /ad /s /b') do (pushd "%%a" 〜) とか? こんな感じで実行したところからサブディレクトリを全部回ってくれるんじゃないかな
491 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 05:40:35.55 ] レスがかぶっちゃった delはファイルじゃなくてディレクトリ消したいのか だったらそもそもdelじゃなくてrmdirにしないと
492 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 06:14:41.60 ] >>488 set MVDIR="C:\Users\XXX\Desktop\移動先" for /d /r %%a in (*) do ( for /f "usebackq" %%b in (`dir /ad "%%a"^|find "個のディレクトリ"`) do ( if %%b==2 ( for /f "usebackq" %%c in (`dir /a-d "%%a"^|find "個のファイル"`) do ( if %%c lss 10 ( move "%%a" "MVDIR" ) )))) pause exit /b
493 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:23:22.56 ] 実行しなくてもわかる、1個目はリネーム、2個目以降は上書き確認でストップ
494 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 12:29:44.08 ] >>489 以前はusebackqも/rも難しく考えて良く分からなかったのですが このような身に沁みて実用的なアドバイス頂いたお陰で身近な存在になれました。 ググッて他の実用例を見ながら勉強します。ありがとうございます。とても参考になりました。 後はecho onについてなんですが、これは最初の行に@echo onと書くだけで良いのでしょうか? 現在はecho 変数 かアヤシイ直後にpauseでcmd画面の直前を確認する位しか方法が分かりません 初歩的な質問ですみませんが、もしよろしければご指導頂ければ助かります。 >>490 カレントフォルダ名を取得しようとしたforになりますが%~dp0.ですね、失礼しました。 それとsetについてですが、二重の"のうち1つを削る様な場面では有効でしたが 例えばset "v=v&v"とするとecho "%v%"では大丈夫でも%v%ではバグるみたいでした。 もし私のやり方が間違っていたらごめんなさい…けど便利ですね。 これからは使わせて頂きます。最下層判定と合わせてありがとうございました。
495 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 12:31:41.87 ] >>491 cdの行を消してrmdir "%~dp0"としてみましたが出来ませんでした。 「プロセスはファイルにアウセスできません。別のプロセスが使用中です。」 との事だったので、そもそもの消すフォルダからbatを実行したのでは難しそうと思い 試しにrmdir "C:\Users\owner\Desktop\移動先\新しいフォルダ" としてみたら無事に消す事が出来ました。ありがとうございます。 >>492 ありがとうございます!無事に出来ました! 粋な"MVDIR"のお陰でもう忘れないと思います。 後はじっくり解読しながら使いこなせるよう頑張ります。 わざわざ全文書いて頂きどうもありがとうございました。 >>493 >2個目以降は上書き確認でストップ 483では出てきませんでしたが、確かに他の書き方だと出てきました。 てっきり削除確認のY/Nかと思ってましたが上書きだったんですか… 思いもしませんでした。ご指摘どうもありがとうございました。
496 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 13:04:19.85 ] >>494 echo %v%でばぐるのかな これは&を^&に置換するか、 setlocal enabledelayedexpansion としておいて、echo !v!とかすればちゃんと&も表示されるよ
497 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:07:11.18 ] 置換するにも、遅延しないとできねえよ
498 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 18:25:43.69 ] windowsのスタートアップの中でバッチファイルを動かして、他のマシンにマジックパケットを 送りたいんですが、どうもその時点で無線LANが繋がってないようで、対象マシンがWakeUp してくれません。 バッチ処理を遅延するにはどうしたらよいですか?
499 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 19:04:48.67 ] ping -n timeout
500 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 21:01:48.95 ] Vista 以降ならむしろ、スタートアップじゃなくてタスク向きな気がする。
501 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 21:15:45.22 ] :loop ping -n 1 "192.168.0.1"||goto :loop
502 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 21:29:06.33 ] powershell -command { start-sleep -s 5 } なんでWindowsって意地でもsleep標準装備しないんだYO!
503 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 21:52:33.59 ] >>502 これ以上Unixからパクるのはプライドが許さないから なんちてw
504 名前:498 mailto:sage [2012/02/09(木) 22:27:55.28 ] みなさま、ありがとうございます。 とりあえず、対象マシンがスリープ状態なので、ping に応答しません timeout と powershell-command {start-sleep -s 120 } を試してみたんですが、起動後ならうまく動くんですが、 スタートアップから起動すると、うまく行きません 電文の送信に失敗しました、とか一瞬表示されてパケットは送られていないようです。
505 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 22:36:54.27 ] スタートアップだから動かないってことはないだろう 最終行にpause入れて何がどう駄目なのか調べてデバッグするしか
506 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 22:42:57.44 ] > 対象マシンがスリープ状態なので、ping に応答しません 無線LAN親機とかデフォルトゲートウェイにpingしてLANが繋がってからマジパケ送ればいい
507 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 15:18:28.31 ] システムのパスにbatファイルから一時的に追加する書き方を教えてください
508 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 15:36:47.43 ] sex
509 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 17:29:08.94 ] set PATH=c:\bin;C:\tool;%PATH%
510 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:16:11.19 ] path /?
511 名前:498 mailto:sage [2012/02/10(金) 20:59:56.43 ] >505,506 そうか、pingは自分のethを試すためだったんですね。 powershellもぐぐってやっと動く用になりました。 ありがとう
512 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:09:40.46 ] >>502 PowerShellを標準装備するようにしたから、わざわざcmd用に作る必要がないってだけじゃね? まあたいした手間でも全然ないとは思うが
513 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:44:36.41 ] 質問なんですが、 ping 192.168.0.4 | find "Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)" echo %errorlevel% 上記をbatで行うと、pingが0%lossでも戻り値が1になってしまいます。 ただ上記のコマンドをプロンプトで実行→echo %errorlevel%で確認すると戻り値は0となります。 これは何故なんでしょうか?
514 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:56:01.63 ] ローカルにサーバを立ててましてIPが127.0.0.1になります サーバが動いているかをbatファイルで監視して、サーバが落ちたらbatファイルを終了すると方法を伝授してください
515 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:59:23.21 ] >>513 バッチファイルにも(0% loss)ってそのまま書いてる? もしそうなら%を%%にしてやってみて
516 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:21:04.29 ] >>515 出来ました!ありがとう御座います でも「0%」だと何かの変数を展開しようとするんですかね? それを新たに%を付けて文字列として扱う用にしてるとか… どっちにしろ""で囲んだら変数は展開されないっていう認識だったのでそれも間違いみたいですね… 勉強してきます
517 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:05:54.56 ] wgetを使ってソフトの最新バージョンをDLできるバッチを作成したいと思ってるのですが ファイルのリンクがttp://hoge/更新日付/a-z,0-9を含む不規則な文字列/v1.0.0.zip のような場合で不規則な文字列に対応させるにはどう記述すればいいでしょうか 日付は%date%で置き換えられるのが分かりましたが今回の件で詰まってしまいました・・・
518 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:06:05.33 ] >>514 @echo off :pingchk ping 127.0.0.1 -n 2 if errorlevel 1 goto end if errorlevel 0 goto pingchk :end これで行けるかと 相手先ノードへのping間隔を多くしたいならlocalhostへのpingでsleepにしておけばいいと思います
519 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:35:28.07 ] @echo off :re ping 0.0.0.1||goto re :end
520 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:47:39.62 ] for /f "tokens=4 delims=/" %%a in (target.html) do (echo ttp://hoge/更新日付/%%a/v1.0.0.zip)
521 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:24:18.48 ] >>517 直リン or 不規則な部分、の入ったページがあるならそのページをゲットして URL を抜き出す or フルのURLを生成、すればいいじゃない
522 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:55:51.46 ] >>518 ありがとうございます!
523 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:59:26.64 ] >>518 試してみたんですが、動きませんでした Windowsにapacheを入れてサーバ起動後にbatファイルを起動して、サーバを終了させても batファイルが終了しませんでした
524 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:13:29.84 ] 鯖が生きてるかどうかとpingが通るかは別だろ もっとまともなスクリプト使ってチェックするか wgetしてファイルの中身チェックするか wget localhost/test.htm || echo 死んでる
525 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:22:54.48 ] >>523 @echo off :pingchk tasklist | findstr apache.exe if errorlevel 1 goto end if errorlevel 0 goto pingchk :end
526 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:31:34.25 ] >>520-521 ありがとうございます for /f "tokens="勉強になりました 調べまくってようやく521さんの答えにたどり着いたとこでした
527 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:52:56.86 ] >>524 サーバが停止してたら127.0.0.1にアクセスできなくなるのですがこれは通らないものなんですかね? >>525 プロセスを監視する方法がいいのかもしれません そのまま実行するとcpu100%になってしまうので1秒スリープをいれたいのですが @echo off :pingchk ping 198.162.0.0 -n 1 -w 1000>nul tasklist | findstr httpd.exe if errorlevel 1 goto end if errorlevel 0 goto pingchk :end とやって1秒スリープを入れてるのですがスリープされません ping 198.162.0.0 -n 1 -w 1000を単品でdosに打つとタイムアウトはしたので存在しないipであります
528 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 14:31:07.38 ] >>527 > サーバが停止してたら127.0.0.1にアクセスできなくなるのですが そのアクセスとはHTTPアクセスであって、応答無くなるのは それはwebサーバが停止しているだけの話で PCそのものネットワークが有効か調べるpingとは直接関係ないから。
529 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:47:17.56 ] ヘタすると、OS死んでても ping 応答する奴すらあるし。
530 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:38:45.91 ] >>526 おめ >>527 ちょい外れるけど 198.162.0.0 への ping がキモ過ぎる…… Apache ならサービスで起動しておいてサービスの状態を監視する方がスマートだと思う。 sc <サーバー> query Apache2.2 | findstr "RUNNING" 1>nul 2>&1 if エラーレベル なんちゃら みたいに。
531 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 02:49:03.22 ] テスト copy a Ā
532 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 02:52:17.36 ] Microsoft Windows XP [Version 5.0.2195] (C) Copyright 1985-2001 Microsoft Corp. >copy a Ā Ā was unexpected at this time. なんでこうなるの?
533 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 03:05:39.01 ] >copy a Ă 1 file(s) copied. これはokなのに…
534 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 06:17:53.00 ] codepageは?
535 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 08:09:38.30 ] D:\>chcp 現在のコード ページ: 932 D:\>copy a Ā Ā の使い方が誤っています。 D:\>copy a Ă 1 個のファイルをコピーしました。 なんだろこれ
536 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:54:38.86 ] 調べてみたらこんな感じ switch (c){ case '&': case '<': case '>': case '|': return 0x100; default: return c; }
537 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 11:08:50.01 ] Ā = Ā
538 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 11:14:57.58 ] Ā = Ā
539 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:17:59.80 ] C:\proc\data\ ディレクトリ内にある 音響.txt さくら.txt 夕暮れ.txt 冬籠もり.txt 花 暦.txtなどの複数ファイルのうち、 ひとつずつloop+moveで処理したいと思っています find "C:\proc\data\" -maxdepth 0 -name "txt" -exec set input_file = {} \; call "C:\proc\resize.bat" "%input_file%" move %input_file% "C:\proc\data\move\" txtでファイルを検索し、moveでresize.bat適用後にファイルを移動させることで 最終的にC:\proc\data\内のファイルがなくなって処理終了、と考えているのですが 最初のfindコマンドが「操作可能なプログラムまたはバッチ ファイルとして認識されていません」と表示されてしまいます おそらく最初のコマンドがunixコマンドなのだと思うのですが dosコマンドで同じように、特定のフォルダからファイルのパスをひとつだけ検索して変数に置き換えられるコマンドにするにはどうすればいいでしょうか よろしくお願いします
540 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:36:31.32 ] for %f in (C:\proc\data\*.txt) do echo %f 次回は「バッチファイル」で検索してから質問する事。 > find "C:\proc\data\" -maxdepth 0 -name "txt" -exec set input_file = {} \; > call "C:\proc\resize.bat" "%input_file%" > move %input_file% "C:\proc\data\move\" そもそも、findがあっても動かねーだろ。w
541 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 14:12:40.98 ] それ以前にfindが無いってのはどういうこと? win98にはあったような…。win95位前は覚えてないんだけど。
542 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 14:22:32.94 ] winのはfindはコマンドが違うし別物 どこからか落としてきて使えないことはないけどfor /f使うのがめんどくさい
543 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 14:27:51.28 ] いやそれは知ってるけどさ、元からある奴は消さなきゃ無くならないだろ。 最初からないっていう環境はあんの?
544 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 15:51:48.05 ] >>539 の事だから、どんなことやってるか凡人には想像もできない。 するだけ無駄だから「無い」はそのまま受け入れよう。
545 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 16:11:39.69 ] forfiles使えよ
546 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 17:14:35.31 ] >>540 うまくいきました!ありがとうございます! やっぱりDOSコマンドとUNIXコマンドは別物でwindowsでのバッチコマンドは前者のみを示すんですね
547 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 17:37:03.90 ] >やっぱりDOSコマンドとUNIXコマンドは別物でwindowsでのバッチコマンドは前者のみを示すんですね だって
548 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 17:45:33.75 ] UNIXを知ってると自慢したいだけだろw
549 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 17:54:23.44 ] 一応forfilesがunixのfindもどきなんだけどね。 一応findstrがunixのqgrepもどきなんだけどね。
550 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 18:49:41.24 ] technet.microsoft.com/ja-jp/interopmigration/bb380242
551 名前:デフォルトの名無しさん mailto:saga [2012/02/15(水) 19:02:11.46 ] こんなゴミのリンク貼るなよ。 >>550 サポートされているオペレーティング システムWindows 2000 Service Pack 3/Windows 2000 Service Pack 4/Windows Server 2003/Windows XP
552 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 20:19:45.98 ] すいません、教えてください。 バッチファイルの中の処理でファイルを作成するステートメントを書きます。 次のステートメントの処理が始まるのは、先のファイル作成の完了(ディスク上にファイルができる)の後ということでよいでしょうか。 コマンドプロンプトを考えれば、そうなると思うのですが、念のため。例えば外部ディスクへの書き込みまちなどをしている間に、次の処理が始まるということはないでしょうか。 初歩的な質問ですがお願いします。
553 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:16:05.18 ] 普通に考えれば分かるだろ?
554 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:33:11.21 ] へえ?どう分かるんだ。教えろ。
555 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:40:23.55 ] 基本的に逐次処理されるよ ただしstartコマンドは/waitしない限りプロセスを起動して終了を待たずすぐ制御を返す
556 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:44:12.61 ] 当たり前すぎて、つまらないレスですね
557 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:47:07.31 ] 前のコマンドの終了を待たずに次のコマンドを実行するってことは 前のコマンドの実行開始とほぼ同時に次のコマンドを、更にその次を…ってことで 全てコマンドを同時実行するに等しい
558 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:52:43.88 ] 書き込み量が多くてバッファに残ってるのに 次の処理が始まる可能性は?
559 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:56:07.57 ] >>558 頭悪そう
560 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:58:16.11 ] 頭悪いひとが悩むようには作られてないってことだよw普通に考えれば
561 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:03:42.82 ] プロセスから見て終了していても、 実際には終了していない場合もある
562 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:15:24.97 ] 下手の考え休むに似たり
563 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:18:41.49 ] 具体的に反論してくれないとつまらん。 頭良いんだろ?お前ら
564 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:19:44.80 ] お前を楽しませてどうするbkk
565 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:23:41.72 ] つまんね
566 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:30:17.34 ] start hoge nanika matiawase hoge ってどうやればいい?
567 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:34:21.30 ] 頭悪いんで質問の意味が分からん
568 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:19:12.92 ] start hoge.bat nanika hoge.bat start /w hoge.exe matiawase hoge以下でやりたかったこと
569 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:20:08.67 ] わからんならスルーしろよw
570 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:29:55.10 ] それだと matiawase hoge以下でやりたかったこと が nanika のあとにならんだろ
571 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:31:59.90 ] echo ^G はどうやりぃい?
572 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:15:55.68 ] hoge|nanika matiawasego だな
573 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:20:12.51 ] >>569 誰に言ってるんだよ 俺は知らんぞ
574 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 07:54:23.11 ] 552の質問をしたものです。 別プロセスを起動しない限り、先の処理の完了をもって次の処理が始まる ということですね。何をもって完了というところが、疑問だったのですが、 基本的には、ファイル作成なら作成完了で制御情報が返ってきて、プロセス が完了と判断すると考えることにしました。 皆様レスありがとうございました。
575 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 21:26:17.89 ] 下手の考え休むに似たり
576 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 16:38:44.25 ] copy 巨大ファイル なんてやってると、copyから復帰してもガリガリやってるな
577 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 00:40:52.49 ] >>576 遅延書き込みのせいかも ttp://d.hatena.ne.jp/FukayaAruto/touch/20080228/xp_vista ttp://d.hatena.ne.jp/NyaRuRu/touch/20080306/p1
578 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:51:23.53 ] hou >for %i in ("<html></html>") do echo %~i > index.htm >type index.htm <html></html>
579 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 10:43:13.48 ] 親フォルダは削除せずに、サブフォルダだけを削除する方法ってありますか? 今は仕方がないので rd C:\aaa /s /q mkdir C:\aaa という風にしています。
580 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 11:17:08.69 ] for /d %d in (c:\aaa\*) do rd /s /q %d
581 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 17:33:05.60 ] cd C:\aaa rd . /s /q
582 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 17:55:32.97 ] cmdのカレントディレクトリって何故かロックされるんだよな Explorerからの削除を妨害されて何度泣いたことか
583 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 18:20:43.56 ] カレントディレクトリが勝手に削除されたら困るだろが?
584 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 19:24:16.57 ] >>580 ありがとうございます 空フォルダが残ってしまいませんか? >>581 ああ!たしかにこれで充分ですね!
585 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 19:30:49.87 ] cd, pushは必ず結果をチェックしないといつか泣きをみるぞ cd C:\aaa || goto error rd . /s /q ... :error pause goto :eof
586 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 20:23:36.15 ] んじゃ cd C:\aaa && rd . /s /q
587 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 02:42:34.41 ] 最後に goto :eof とか書くのは意味あるのか?
588 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 02:52:17.45 ] cd の後に rd . /s /q とか怖いぞ cd /d にしたほうが安全
589 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 03:40:34.17 ] バッチは途中でエラーがあっても突っ走るから怖いぞー
590 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 20:46:15.45 ] ビビッテンジャネーヨ!
591 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 21:13:52.68 ] >>587 その後に別のエラー処理を追加するケースとかを想定してんじゃね?
592 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 00:07:30.67 ] cdやpushdなんてせずにフルパス指定すればいいじゃん(いいじゃん)
593 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 00:08:54.73 ] どうしてもカレントディレクトリを変える必要があるのって どんなケース?
594 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 00:48:49.77 ] 更新日時の更新はどうやるんだっけ?
595 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 00:55:28.36 ] ロックしたいからカレントディレクトリを変えてるんだろ RD フルパス指定だと、それ自体が消えちゃう もちろん他の方法もあるだろうけど
596 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:16:36.08 ] type nul >>594
597 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:23:27.14 ] 作成日時の更新はどうやるんだっけ?
598 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:34:16.63 ] WSHで
599 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:42:12.15 ] >>596 試したら更新されなかった
600 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 02:28:12.37 ] cd /d "%~dp1" copy %1 +
601 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 17:08:20.85 ] 対策法を見つけはしたが、皆さんならどうするのか聞かせて。iは、コマンドラインを想定。 set i="a" /? "b c" if "%i%"==""a" /? "b c"" (echo YES)
602 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 18:10:01.03 ] 待ち時間作るときって WSHでやるかpingでやるかどっち使ってる?
603 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 18:30:05.89 ] sleep
604 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 18:58:53.54 ] timeout.exe 、2003以降なら標準で使えるし 『何かキーを推せば続行』がお手軽なので timeout.exe が使えないか使えない可能性がある、待ちの確認やスキップが不要、なら ping
605 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 19:01:34.24 ] こんな便利なものがあったのかthx
606 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 22:27:48.98 ] >>600 cd使うなってよ
607 名前:デフォルトの名無しさん [2012/02/24(金) 03:35:01.15 ] oshiete.goo.ne.jp/qa/3913616.html これをフルPath指定ではなく、前方一致(もしくは部分一致)にするには、どうしたらよい? www.tkssoft.com/cmd/cmd027.html と組み合わせれば良いのかなー…と思ってるんだけど。 Forをネスト??
608 名前:607 mailto:sage [2012/02/24(金) 03:47:13.89 ] ↓こんな感じにしてみるも、うまくいかず… set Folder1=c:\src set Folder2=c:\dst for /f %%z in (c:\copy\list.txt) do call :add1 %%z :exit pause exit /b :add1 set DATA01=%1 cd /d %Folder1% for /d /r %%a in ( * ) do copy "%%a\*%DATA01%*" "%Folder2%" exit /b pause
609 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 03:53:12.74 ] >>606 カレントディレクトリにファイルが有るんなら cd は不要だよ copy /b %1 + nul %1 これは更新されない copy %1 + nul %1 これは更新されるがファイルにゴミ(0x1A)が付く
610 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 10:19:43.13 ] >>601 @echo off set i="a" /? "b c" :: jは比較用 set j="b" /? "c" :: \"a\" /\? \"b c\" を作る set "t=%i%" call set "t=%%t:"=\"%%" call set "t=%%t:?=\?%%" :: YES1だけ出たらおk echo %i% | findstr /r /c:"%t%" >nul 2>nul && echo YES1 echo %j% | findstr /r /c:"%t%" >nul 2>nul && echo YES2 pause
611 名前:607 mailto:sage [2012/02/24(金) 16:13:35.83 ] 自己解決。 :: --------------------------------- set path set src=c:\copy\src set dst=c:\copy\dst :: --------------------------------- main script echo ------ Search and Copy Start ------ for /f %%z in (list.txt) do call :copy1 %%z :exit pause exit /b :copy1 set search1=%1 echo %search1% cd /d %src% for /R %%i in (%search1%*) do ( copy %%i %dst% ) exit /b pause :: --------------------------------- end
612 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 16:23:09.36 ] exit /b pause <==== これは何のお呪いですか? :: --------------------------------- end
613 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 17:16:06.15 ] お祝いです
614 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 18:18:43.22 ] 確かにexitの直後のpauseは何の意味がって感じではあるな
615 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 19:41:10.39 ] cd /d "%~2" とかで引数で受けるならサブルーチンでcdする意味あるだろうけど cd /d %src% だとcallする度にcdするのは効率悪いから mainのforの前でcdしてしまったほうがいいね
616 名前:607 mailto:sage [2012/02/25(土) 00:47:22.76 ] >>612-615 指摘さんくす いちおう修正版投下しとくね ※list.txtがバッチファイルと同じディレクトリにあるから、ちょっと面倒だった… :: --------------------------------- set path set src=C:\Users\xxxxx\Desktop\copy\src set dst=C:\Users\xxxxx\Desktop\copy\dst set list=list.txt :: --------------------------------- main script echo ------ Search and Copy Start ------ set listpath=%~dp0list.txt cd /d %src% for /f %%z in (%listpath%) do call :copy1 %%z :exit pause exit /b :copy1 set search1=%1 echo %search1% for /R %%i in (%search1%*) do ( copy %%i %dst% ) exit /b :: --------------------------------- end
617 名前:607 mailto:sage [2012/02/25(土) 00:48:07.87 ] set listいみねぇな…まぁいいや… いろいろありがとノ
618 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 10:10:40.37 ] おお、\" で、echo findstr を使うのかー!成る程。ありがとう。 恥を忍んで聞きますが、set "a=b" や、call set が不要に思えます。想定したものがあれば教えて下さい。 対策したのも、あげておきます。spaceだけを置き換えました。他のtabとかも置き換えると、行数が増えます。 set i="a" /? "b c" set Jyouken="a" /? "b c" set Jyouken=%i%==%Jyouken% set Jyouken=%Jyouken: =_SPACE_% if %Jyouken% echo YES!
619 名前:601 mailto:sage [2012/02/25(土) 11:39:22.21 ] 618 に 名前:601 とか >>610 つけるの忘れました。 618 がちょっと、舌足らずなので追加します。 >>610 これだけでも動くので、不要に思えました。 set i="a" /? "b c" set Jyouken="a" /? "b c" set Jyouken=%Jyouken:"=\"% echo %i% | findstr /r /c:"%Jyouken%" >nul 2>nul && echo YES1
620 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:37:13.64 ] 拡張子によって処理を分岐させるにはどう書けばいいですか?
621 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:47:11.60 ] 質問者が手を抜いてるのに それに答えるアホが現れるかどうか
622 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:52:48.57 ] 拡張子を判定してgotoすればいいです。
623 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:55:31.07 ] >>620 どこにその文字列が格納されているかによるけどサンプルをいくつか if "%~x1"==".bat" ... goto label%~x1 ... :label.bat for %%i in (foo.bat) do call :label%%~x1
624 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:32:51.65 ] すみませんお騒がせしました 昨日調べて作ってみたのが動かなかったんですが なぜかさっきもう一回試したら動きました if "%~x1"==".rar" goto RAR if "%~x1"==".7z" goto 7Z shift :RAR rar x -y -ep1 "%~1" "%~dp1" goto END shift :7Z 7z x -y "%~1" -o"%~dpn1" goto END
625 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:38:37.73 ] linuxのwgetみたいなのってbatだけでは無理ですか?
626 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:47:10.24 ] ってよく考えたら2つの比較なら if "%~x1"==".rar" (rar" x -y -ep1 "%~1" "%~dp1") else (7z x -y "%~1" -o"%~dpn1") でよかったですね
627 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:10:54.72 ] >>625 1.Powershellでごり押し 2.bat|cmdとwshでハイブリットごり押し スクリプトのみはちょっときついかもね
628 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:27:47.53 ] Powershellというのでやってみます
629 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:34:30.84 ] >>609 > copy /b %1 + nul %1 > これは更新されない 更新されるが?
630 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 21:31:05.12 ] >>625 opensourcepack.blogspot.com/2010/05/wget-112-for-windows.html こういうWindowsバイナリを使わずにってこと?
631 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 08:06:00.39 ] それ使っていいなら、こんなスレで質問しないと思うが… バッチ / スクリプトのみではちょっと無理でしょ。 MSXML2.ServerXMLHTTP + スクリプトあたりが無難だと思うが。
632 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:33:59.21 ] あー聞き方が曖昧だった。 Windowsバイナリ使わずに技術的に可能ならやってみる、ってこと? を聞いてみたかっただけ。どこまでやってみるのか分からないけど 再帰、階層、ミラー、etc,...、とか考えるだけでしんどそうなのに挑むのかと。
633 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:55:11.72 ] 本当に本人かどうかはわからんけど、>>628 で Powershell でやってみると言ってるよ。 > 再帰、階層 むしろここら辺はスクリプトでも扱いやすいと思うけど。
634 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 06:27:04.19 ] バッチに送った複数のファイルやフォルダのパスをソートしたいのですが @(for %%a in (%*) do @echo "%%~fa")|sort ですと "C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\3ファイル.txt" "C:\TMP\abc\4フォルダ" "C:\TMP\abc\5フォルダ" のようになってしまいます。これをエクスプローラーの並び順のように "C:\TMP\abc\4フォルダ" "C:\TMP\abc\5フォルダ" "C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\3ファイル.txt" としたいのですがどう書けばいいですか
635 名前:デフォルトの名無しさん [2012/02/29(水) 10:40:52.94 ] >>629 俺のは更新されない なんでだろうな
636 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 10:46:38.26 ] vbs呼び出して頑張って自分でソートする
637 名前:デフォルトの名無しさん [2012/02/29(水) 11:56:21.97 ] フォルダに他の属性が無いなら @(@for %%a in (%*) do @if "%%~aa" == "d--------" @echo "%%~fa") | sort @(@for %%a in (%*) do @if not "%%~aa" == "d--------" @echo "%%~fa") | sort
638 名前:デフォルトの名無しさん [2012/02/29(水) 12:02:28.55 ] forとechoの前の@は不要だな
639 名前:ホイミン mailto:sage [2012/02/29(水) 14:54:02.18 ] R:\Ue\Shita>dir /b /s .. ファイルが次の様にあります。 R:\Ue\Shita 上フォルダの中に下フォルダが有り、 R:\Ue\Ue1.txt それぞれ、ファイルが有ります。 R:\Ue\Shita\Shita1.txt このうそつきを実行します。\じゃないところに注意。 R:\Ue\Shita>for %i in (../*) do @echo "%~fi" "R:\Ue\Shita\Ue1.txt" 適当にパスを付けた、有りもしないファイルが表示されます。 >>634 僕も考えてみたよ。637も同じだけど、複数のディレクトリーにまたがる場合は、分ける必要が有るよ。 for /f "delims=" %%a in ('(dir /ad /b /on %* ^& dir /a-d /b /on %* ^) 2^>nul') do echo;"%%~fa"
640 名前:ホイミン mailto:sage [2012/02/29(水) 15:06:06.53 ] でも dir /b /og の方が便利そうだね。 ごめんよ、ややこしくして。
641 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 15:59:08.48 ] ちょっと質問なんですが wget (url) -O ffd.txt type ffd.txt|findstr xhmikosr.exe 1> ffd1.txt for /f "tokens=3-4 delims=_" %%a in ('findstr "xhmikosr.exe" ffd1.txt') do set ver=%%a_%%b wget -N -c (url) innounp.exe -x "ffdshow_%ver%_xhmikosr.exe" move {app}\*.dll C:\Program Files\ffdshow で最後のmoveのとこでコマンド構文が間違ってますといわれるんですが 何が間違ってるんでしょう
642 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:00:18.81 ] こうだろうな。 move {app}\*.dll "C:\Program Files\ffdshow"
643 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:47:28.73 ] >>642 またやってしまった・・・ ダブルクォーテーションですね ありがとうございました
644 名前:デフォルトの名無しさん [2012/02/29(水) 20:21:18.27 ] >>640 おまえ、全然試してないだろ そのバッチ作ってD&Dしてみろボケ
645 名前:ホイミン mailto:sage [2012/03/01(木) 08:22:30.49 ] >>644 コマンドプロンプトで test.bat .\* 等と、色々やって試したんだけどね、足りなかったね。 dir がフォルダーを展開してしまうのには、書き込んでから気付いたんだけど、くどいので訂正しなかたんだよ。 使えない書き込みだから、みんな無視するだろうと思っていたよ。 一々反応してくれるのはありがたいけど、君は社会性が無いようだね。
646 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 08:25:30.43 ] @echo 便所の落書きに(ry&pause
647 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 11:51:26.33 ] 便所の落書きだか知らんが どう試したんだよw 全然ダメだろw
648 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:03:21.98 ] @echo 便所の落書きに^(ry&pause
649 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:15:45.41 ] dirの/oは引数をソートしないよ
650 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:54:15.80 ] 複数のファイルをバッチにD&Dしたら 引数の順番って、どう決まるの? echo %* マウスカーソルの位置のファイルが一番目?
651 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:29:17.92 ] そうよ 2番目以降は並び順、ラップラウンド
652 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:30:26.30 ] ついでに言うと、1番目ファイルでカレントディレクトリ
653 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:10:40.16 ] バッチにD&Dしたら、カレントディレクトリは %HOMEDRIVE%%HOMEPATH%が既定値なのでは?
654 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:25:46.89 ] なのではって?そうなるのか?OSは?
655 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:30:35.02 ] すまん。俺のPCは古い化石なんで、Win2000 他のは違うんかも
656 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:04:32.12 ] カレントディレクトリはバッチに落とした場合とバッチのショートカットに 落とした場合で異なる。
657 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:38:45.35 ] ショートカットの場合はプロパティで確認できる。 D&Dしたファイルとは無関係なようです
658 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:40:18.10 ] ショートカットで設定してなければバッチと同じ 当たり前だろ
659 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:56:50.35 ] だから何? おれはショートカットの話は別にどうでもいいんだが
660 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:15:31.22 ] カレントディレクトリはバッチに落とした場合とVBSに 落とした場合で異なる。
661 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:16:24.16 ] だから何? おれはVBSの話は別にどうでもいいんだが
662 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:20:45.18 ] 他人のレスの真似するなよ。
663 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:36:25.83 ] なんでvbsは違うんだ?
664 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:39:43.76 ] だから何? おれはVBSの話は別にどうでもいいんだが
665 名前:デフォルトの名無しさん mailto:saga [2012/03/02(金) 02:53:26.53 ] >>659 お前バカだろ。起動時のカレントディレクトリはあてにしてはいけないという事だ。 つまり、>>652 の情報は何の意味もない。
666 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:54:30.97 ] なんでスレタイ読めないの? おれはVBSの話は別にどうでもいいんだが
667 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 03:39:03.93 ] VBSのドロップハンドラがへぼいんだろ
668 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 08:52:29.56 ] >>665 お前バカだろ。当たり前だろ
669 名前:ホイミン1 mailto:sage [2012/03/02(金) 11:52:24.56 ] >>649 おお、そうなんだ勉強になったなあ。確認したんだけどなあ。 でもそんなにも僕はうっかり者だったのかと、もう一度確認したけど、ソートされているみたいだよ。 なにか勘違いしているかな? dir が使えなかったのは、変わらないけど。 R:\Ue\Shita>dir /b /on fortest.bat "Shit a2.txt" dirfile.bat dirfile.bat fortest.bat Shit a2.txt Drug and Drop は absolute で渡されるからいいんだけど、relative path を使った short cut の上に D'nD する際に問題になって、調べた事があるよ。 Drug and Drop は vista 以降で変更されているようだよ。 current directory は、XP 以前では %HOMEDRIVE%%HOMEPATH%、vista 以降では %~dp1 らしいね。 参考 www.hirax.net/diaryweb/2009/06/04.html
670 名前:ホイミン2 mailto:sage [2012/03/02(金) 12:05:26.19 ] まとめてみたよ。XP では確認した(けど、でもばっちり確認したわけじゃあないから、低レベルな事を言わないで訂正してくれ)よ。 Current Directory in the various cases of launching ______________________ , 2000, _ XP,VISTA,SEVEN DrugAndDrop___________ , HOME, HOME, _ %1, _ %1 DoubleClick___________ ,Lnchd,Lnchd,Lnchd,Lnchd DrugAndDrop On ShortCut, HOME, HOME, _ %1, _ %1 DoubleClick Of ShortCut,Lnchd,Lnchd,Lnchd,Lnchd -Anotation -ShortCut is in case of the blank of "Start In". If not blanked, current directry follows it. - HOME: %HOMEDRIVE%%HOMEPATH% - _ %1: Directory of the 1st argument -Lnchd: Launched directory (in case of short cut, directory of short cut) drug and drop の際の問題といえば、全角スペース(他にも有)を含む "file name.txt" などのファイルを Drug and Drop するとクオートされないよね。他にも知ってる問題があったら、教えて。
671 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:15:09.54 ] コマンドとか以前に × Drug ○ Drag
672 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:16:55.25 ] >current directory は、XP 以前では %HOMEDRIVE%%HOMEPATH%、 explorer processのcurrent directoryでは?
673 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:33:17.13 ] moveでフォルダ移動のときフォルダ名指定に*使えないのは嫌がらせでしょうか
674 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:06:48.04 ] 仕様です
675 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:56:48.46 ] >>669 俺は >>649 じゃないが、dir の /og は引数をソートしないようだ。 他は知らない。 というか間違いを書き込んで放置している奴が、 他人に社会性云々などと言える立場かよ。 レベルが低くて悪かったね。 便所の書き込みでした。
676 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 01:24:11.63 ] ドラッグ&ドロップ 前提のバッチファイルならバッチの冒頭とかに cd /d %~dp0 や cd /d %~dp1 とかを状況次第で必要に応じて書き加えていそうなもんだが。 OS による挙動の違いで問題、とかいってる前にしないのかね。
677 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 01:49:25.89 ] >>669 dir /b /on test\2\2.txt test\1\1.txt 2.txt 1.txt
678 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 03:30:18.27 ] どうでもいいっす
679 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 05:21:31.12 ] バージョンの違いだろwあほども
680 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 09:01:15.54 ] 低レベルな事を言わないでくれってさ
681 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 10:50:21.10 ] >>676 バッチファイルでcd前提の処理は UNCパスで実行された場合、想定外の動作になる バッチファイルは相対ダメ ゼッタイ絶対パス指定すべし
682 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 11:08:26.87 ] どうでもいいっす
683 名前:634 mailto:sage [2012/03/03(土) 12:11:55.59 ] >>637 ありがとうございます 教えて頂いた方法でやりたいことが出来ました 好奇心から、異なるディレクトリのものをまとめて送れるランチャーやファイルのリストなどから 同様のことが出来ないものかと機能拡張を試みて試行錯誤していてお礼が遅くなりました 申し訳ございません 改めまして再度質問です。よいお知恵があればご助言お願いします arg.tmpの内容 list.txt 表示したい結果 "C:\TMP\aaa.txt" "C:\TMP\abc" "C:\TMP\abc" "C:\TMP\abc" "C:\TMP\aaa.txt" "C:\TMP\aaa.txt" "C:\TMP\abc.txt" "C:\TMP\abc.txt" "C:\TMP\abc.txt" "C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\4フォルダ" "C:\TMP\abd.txt" "C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\5フォルダ" "C:\TMP\bbb.txt" "C:\TMP\abc\3ファイル.txt" "C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\4フォルダ" "C:\TMP\abc\4フォルダ" "C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\5フォルダ" "C:\TMP\abc\5フォルダ" "C:\TMP\abc\3ファイル.txt" "C:\TMP\abc\1ファイル.txt" "C:\TMP\abd.txt" "C:\TMP\abd.txt" "C:\TMP\abc\2ファイル.txt" "C:\TMP\abd\123.txt" "C:\TMP\abd\efg" "C:\TMP\abc\3ファイル.txt" "C:\TMP\abd\456.txt" "C:\TMP\abd\123.txt" "C:\TMP\abd\efg" "C:\TMP\abd\efg" "C:\TMP\abd\456.txt" "C:\TMP\abd\123.txt" "C:\TMP\bbb.txt" "C:\TMP\bbb.txt" "C:\TMP\abd\456.txt" arg.tmpのソートの方法がまずいということはわかるのですがどうすればいいのやら。。 以下に書いたバッチを貼ります。少し長いですがご容赦願います
684 名前:634 mailto:sage [2012/03/03(土) 12:12:59.66 ] @echo off set argpath= set arglist= call >"%~dp0list.txt" @(for %%a in (%*) do @echo "%%~fa")|sort /o "%~dp0arg.tmp" for /f "usebackq" %%b in ("%~dp0arg.tmp") do call :sub1 %%b call :sub2 rem del "%~dp0arg.tmp" pause&exit /b :sub1 if not defined argpath ( set argpath="%~dp1" set arglist=%1 exit /b ) if %argpath%=="%~dp1" ( set arglist=%arglist% %1 exit /b ) call :sub2 set argpath="%~dp1" set arglist=%1 exit /b
685 名前:634 mailto:sage [2012/03/03(土) 12:13:15.16 ] :sub2 set arglistfile= for %%c in (%arglist%) do call :sub3 "%%~ac" "%%~fc" if not defined arglistfile exit /b for %%d in (%arglistfile%) do >>"%~dp0list.txt" echo "%%~fd" set arglist= exit /b :sub3 set attr=%1 set attr=%attr:~1,1% if "%attr%"=="d" ( >>"%~dp0list.txt" echo "%~2" ) else ( set arglistfile=%arglistfile% "%~2" ) set attr= exit /b
686 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 12:38:57.51 ] 絡んだおれがバカだった 絶対パスで好きにしてくれ
687 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 13:57:54.46 ] てかいまどきバッチファイルなんか書いてる奴らが総じて底辺。
688 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 14:00:13.55 ] >>679 テキトーなことぬかすなボケ
689 名前:634 mailto:sage [2012/03/03(土) 15:20:00.58 ] arg.tmpの内容を "%%~dpa" "%%~fa" としてソートし :sub1 の%1を%2とすることで解決出来ました こっちのほうが効率がいいとかありましたら指摘お願いします。以下、修正したバッチです @echo off set argpath= set arglist= set tmpfile="%~dp0arg.tmp" set output="%~dp0list.txt" call >%output% @(for %%a in (%*) do @echo "%%~dpa" "%%~fa")|sort /o %tmpfile% for /f "usebackq delims=" %%b in (%tmpfile%) do call :sub1 %%b call :sub2 del %tmpfile% exit /b :sub1 if not defined argpath ( goto :jump ) if %argpath%=="%~dp2" ( set arglist=%arglist% %2 exit /b ) call :sub2 :jump set argpath="%~dp2" set arglist=%2 exit /b
690 名前:634 mailto:sage [2012/03/03(土) 15:20:35.76 ] :sub2 set arglistfile= for %%c in (%arglist%) do call :sub3 "%%~ac" "%%~fc" if not defined arglistfile exit /b for %%d in (%arglistfile%) do >>%output% echo "%%~fd" set arglist= exit /b :sub3 set attr=%1 set attr=%attr:~1,1% if "%attr%"=="d" ( >>%output% echo "%~2" ) else ( set arglistfile=%arglistfile% "%~2" ) set attr= exit /b
691 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 18:01:42.04 ] うざ
692 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 19:48:23.70 ] %~dpは早退なのかよ
693 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:02:34.08 ] 遅刻なのかよ
694 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:06:23.02 ] dir /b /on test\2\2.txt test\1\1.txt 1.txt 2.txt
695 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:11:40.93 ] dir /b /on z:\z.txt y:\y.txt z.txt y.txt
696 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:39:04.11 ] dir /b /on z:\* y:\* z.txt y.txt
697 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:59:19.02 ] dir /b /on test\2\2.txt test\1\1.txt |sort 1.txt 2.txt
698 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:33:17.02 ] >dir /b /on a.txt b.txt a.txt b.txt >dir /b /o-n a.txt b.txt b.txt a.txt
699 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:34:32.16 ] >>698 確かに引数をソートしてるな
700 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:37:41.92 ] >dir /b /on a b a.txt b.txt a.txt b.txt >dir /b /o-n a b b.txt a.txt b.txt a.txt
701 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:38:36.31 ] ディレクトリ単位にソートってことだろ?
702 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:23:07.77 ] >>689 俺もバッチ作ってみた @echo off & cd /d "%~dp0" del tmp1 tmp2 list.txt > nul 2>&1 (for %%i in (%*) do @echo "%%~dpi","%%~fi")| sort /o tmp1 set /a a=10000 & set b="" for /f "delims=, tokens=1,2" %%i in (tmp1) do ( set c=%%i& set d=%%~aj& set e=%%j& call :x) for /f "delims=, tokens=2" %%i in ('sort tmp2') do echo %%i>> list.txt del tmp1 tmp2 & goto :eof :x if not %b% == %c% set b=%c%& set /a a+=1 if %d:~0,1% == d (set /a f=0) else set /a f=1 echo %a%%f%,%e:~0,-1%>> tmp2
703 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 15:41:04.60 ] うざ
704 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:17:47.60 ] >>689-690 はファイル名に%文字があると誤動作する
705 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:03:47.92 ] どの行?
706 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:07:01.85 ] あの行
707 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:09:41.44 ] たぶんcallの引数の%が化ける
708 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 19:27:26.60 ] 引数渡しやめて環境変数渡しにすればよい
709 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 23:36:02.16 ] >>704 ファイル名の%ってどうやって環境変数記号でないと判断させればいいの? ファイル名内の%の位置を調べて存在したら ^でエスケープするしかない?
710 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 23:38:42.64 ] %のエスケープは%%だよ
711 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:00:12.25 ] なんでお前らいまだにバッチファイル書いてるの?
712 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:12:58.43 ] バッチファイルは基本だよ
713 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:36:58.96 ] >>709 %%
714 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:42:23.44 ] for変数と混同するんじゃね
715 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 15:40:43.79 ] このバッチに名前が%文字を含むファイルをD&Dしてごらん 違いが分かるよ @echo off set a="%~nx1" call :x %a% call :x %%a%% pause goto :eof :x echo %1
716 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 23:46:11.91 ] setlocal enabledelayedexpansion set a="%~nx1" set a=!a:%%=%%%%! echo %a% call :x %a% call :x %%a%% pause exit :x echo %1
717 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 23:48:22.26 ] @echo off for %%i in (%*) do (set a=%%i& call :x %%a%%) pause & goto :eof :x echo %1
718 名前:デフォルトの名無しさん [2012/03/05(月) 23:49:44.92 ] ^%
719 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:07:24.36 ] @echo off for %%i in (%*) do set a=%%i& call :x pause & goto :eof :x echo %a%
720 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:10:12.82 ] いつまでやってんだよカス
721 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:14:24.77 ] サンキューカッス
722 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:27:17.77 ] もっと面白いネタは無いのか
723 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:42:25.31 ] ない
724 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 01:06:38.12 ] とっく枯渇してるので、蒸し返しばっか
725 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 01:13:44.33 ] でもスレを覗くんですね
726 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 01:28:48.52 ] でもってなにがでもだ?
727 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 01:34:13.80 ] 新しい知見を得るために覗いていたのか?
728 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:34:55.54 ] よほど無知なんだろ
729 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 17:10:05.33 ] スレ立てるまでもない質問スレで教えていただいたUNIXコマンドがあります cat `find あるディレクトリ -name test.txt` > 一つのファイル これはあるディレクトリ以下の全てのサブディレクトリを含めて、test.txtというファイルの内容を一つのファイルにまとめるコマンドです Windowsでも同じようにやりたいのですが copy ファイル1.txt+ファイル2.txt・・・・ marge.txt といった感じに+でいちいち書いていくのが面倒なのでよい方法内でしょうか?
730 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 17:55:25.05 ] for /r ディレクトリ %i in (*) do type %i>>test.txt
731 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:14:10.14 ] まんまじゃねーか
732 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:18:00.13 ] え?なんかやる事とやってる事が違うくね?
733 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:30:45.73 ] こまけーことはいいんだよ!
734 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 22:36:25.51 ] >>730 試してみたんですが > の使い方が誤ってます ってエラーがでます
735 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 22:53:00.85 ] 試す前に、なにやってるかくらい読めよ
736 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:03:27.10 ] すいませんコマンドの部分だけ変えてやったら出来たんですが全てのファイルを一つにコピーできません for /R %%a in (test.txt) do copy /B %%a+test.txt test.txt
737 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:33:28.10 ] 変えるなよバカ
738 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:40:45.65 ] 試す前に、for/?くらい読めよ
739 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:42:24.85 ] だったらまともに動くものを書いてくださいよ
740 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:43:45.37 ] 応用のできない奴に何を教えても無駄
741 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:52:11.61 ] それってあなたが書けないだけですよね?
742 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:54:03.40 ] あぶく銭は身に付かない
743 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:56:28.18 ] >>741 その手には乗らないよ
744 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:57:57.96 ] じゃあ邪魔しないでくださいよ
745 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:00:54.15 ] 邪魔なんかしてないよw猫に小判なだけだろ
746 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:04:26.64 ] 別にバッチファイルの勉強しているわけじゃないのに くだらないクイズやナゾナゾなんて必要が無いんですよ 質問に答えられないなら邪魔でしかありません
747 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:08:04.61 ] くだらない質問に誰が答えるって?
748 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:09:55.18 ] いやにのびてると思ったら……
749 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:15:04.29 ] 別にバッチファイルの勉強しているわけじゃないので くだらない質問なんて答える必要が無いんですよ
750 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:16:51.61 ] バッチも使えないならUNIX使ってりゃいいじゃん
751 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:19:23.33 ] いや俺の認識だとむしろバッチだから使えないだと思う 普通に(無意味に)難しいよ、バッチは
752 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:20:15.83 ] 答えられない人はせめて邪魔しないでもらえますか
753 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:22:00.94 ] 俺、答えられるけど答える気ないだけだから邪魔してもいいよね?
754 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:24:14.98 ] それは答えられないと等しいですよね 答えられるのなら答えてるわけですから スレの無駄なんて無能さらすのはツイッターでやってください
755 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:07:56.12 ] marge.txt くすっ
756 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:13:23.19 ] >>729 には教えるだけ無駄 できないと等しいですよね できるならやってるわけですから スレの無駄なんて無能さらすのはツイッターでやってください
757 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:22:21.14 ] 便りの無いのは良い便り
758 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:29:04.83 ] 俺っちは>>730 で動いたが、感謝の念もない無礼な輩が多いな
759 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:42:48.04 ] 動く、という事と、 期待した結果は別なんじゃないかな。
760 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:43:55.08 ] エラーが出たら直せばいいと思うよ不通 それしないで逆切れするなんて以上
761 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:48:04.61 ] 期待した結果になるように直せばいいと思うよ不通 それしないで逆切れするなんて以上
762 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:49:14.40 ] 逆に、MS-DOSしかしらない人に UNIXのシェルで作れって言ったら似たような事になると思うよ。
763 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:45:02.24 ] ならんと思うよ。 man findとかちゃんと調べるもん
764 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:53:36.94 ] 馬鹿は何やっても駄目だから諦めた方がいいよ
765 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 03:03:25.28 ] クレクレ君に答えを与えないでくださいw
766 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 03:06:41.93 ] やるんじゃなかったなw
767 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 03:42:53.07 ] >>729 ,734,736,739,741,744,746,752,754 幼稚園からやり直せ
768 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 11:23:59.92 ] ファイルの結合はcopyだろ 誰がtypeでDOSに文字をかけと言った
769 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 16:33:17.37 ] だってcatじゃん
770 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 16:35:26.05 ] 便所の書き込みに何を言ってる
771 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 16:38:23.60 ] 自演ならもう少し面白くやってくれくれくん
772 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 16:45:22.53 ] だったらDOSじゃなくてDOGだろ?
773 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 18:08:10.27 ] >>755 中学英語からやり直せw
774 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 18:23:21.56 ] for /r ディレクトリ %i in (test.txt) do type %i>>marge.txt
775 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 18:31:08.06 ] くそ!どいつもこいつもバカにしやがって!!!!!!!!!
776 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 18:57:22.39 ] 真夜中に2ちゃんでレスの応酬ってw しかもバッチスレw 出遅れたわw
777 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 19:06:17.90 ] 遅延展開やねw
778 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 19:38:22.80 ] シフトワーカーはバッチがお好き
779 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:48:16.79 ] こういうのはどうかけますか? Cドライブに存在する全てのgitフォルダが何個存在するかカウント
780 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 21:08:57.30 ] エクスプローラで検索したほうが早くないか
781 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 21:44:47.11 ] 単純に検索するとゴミ箱の中まで漁る
782 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:03:14.49 ] cd /d c:\ dir /s /b /ad .git | find /v /c ""
783 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:36:08.58 ] set n=0 for /r c:\ %%i in (.) do if "%%~nxi"=="git" set /a n+=1 echo %n%個
784 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:47:05.53 ] >>782 の訂正版 cd /d c:\ dir /s /b /ad git | find /v /c ""
785 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:39:13.31 ] >>783 ifの前に@を付けろ >>781 for /r はゴミ箱の中まで検索してるな 名前が偶然に一致するなんて、まず無いだろうが
786 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:51:38.35 ] >>783 nxiってなに?
787 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 11:19:32.20 ] >>786 n x i だけじゃないから、自分で調べろ for /?
788 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 07:11:46.74 ] >>782 の訂正版 dir /s /b /ad c:\git | find /v /c "" これでワンライナーOKだった
789 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:31:33.67 ] >>784 ,>>788 それ、c:\git というフォルダがあったら その中身しか検索しないよ
790 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:28:30.28 ] ここで出てきたテクニックをwikiにまとめていただけませんか?
791 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:32:24.24 ] いただけませんか?とか書きこんでる間にwikihouseかどっか借りてコピペしてけばいいだろ
792 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:55:03.16 ] えええ俺がwiki借りるの面倒くさいです
793 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:50:20.55 ] dir abc* ってやると先頭がabcから始まるファイルがヒットすれば表示されますが ファイルの途中にabcが存在するようなファイルもヒットさせる方法を伝授してください xxxabcxxx.txt abc.xxx.txt xxx.abc.txt とか 拡張子が無いファイルとか拡張子にabcが来ることは無いと考えていただいて結構です
794 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:04:14.56 ] dir *abc*
795 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:40:42.38 ] うそこくでねー
796 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:49:29.44 ] ほんとだ
797 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:05:44.51 ] 以前はウソだった。最近のcmd.exeは可能。いつからウソじゃなくなったか知らない。
798 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:14:51.52 ] 少なくともxpは本当。
799 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:19:08.35 ] 今試したら、98SEでも行けた。 大昔(DOS2とかCP/Mとかの時代)はNGだったのは確かだが、 いつOKになったんだろ?
800 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:29:00.75 ] *abc* ぐらい試してから質問しろよ
801 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:32:20.65 ] 試したら質問しないだろw
802 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:38:06.29 ] 16bit DOSの場合は dir *abc*.*
803 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 17:55:31.57 ] バッチファイルでも「最新の情報に更新」(F5キー)を使えますか? デスクトップのファイルを定期的に別のフォルダに移すバッチファイルを書いたんですが、 ファイルが消えても更新するまでアイコンが残ってしまって・・・
804 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 17:57:57.63 ] ahk呼んでsendcontrolでもしたら
805 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 17:58:23.49 ] 山口美江さんが亡くなった・・・ おまえらが急に老けたとか言うから
806 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 17:58:43.96 ] ごめん誤爆
807 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:03:59.92 ] >>803 ふつー残らんよ でもどうしてっつーなら createobject("shell.application").windows().item().refreah
808 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:13:03.08 ] バッチでクリップボードの文字列を引数として渡すことはできますか?
809 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:23:21.58 ] for /f %%i in ('〜') do echo %%i ってこと? '〜'に cscript.exe 〜〜 mshta.exe 〜〜 powershell.exe 〜〜 ってすりゃいい どれでも得意なのでどぞ
810 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:36:11.79 ] C:\2012\以下のサブディレクトリも含む全てのファイルの更新履歴が 2012年2月1日0時0分0秒以降になっているものをリストアップするのはbatでできますか?
811 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:38:05.77 ] forfiles/?
812 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:43:25.00 ] Aフォルダに入っているファイルを Bフォルダにバックアップしたいと考えてます そこでBフォルダには入っていてAフォルダにないファイルを一覧にしたいのですが どうやるのでしょうか?
813 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:51:10.75 ] for + if または dir + findstr
814 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:43:18.94 ] >>804 ありがとうございます ごめんなさい、難しくてよくわかりません;; >>807 ありがとうございます、教えてもらった方法でできました! 'createobject'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出るのですが、これはこれでいいんでしょうか? WIN7を使っています。
815 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:37:42.34 ] 正常
816 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:41:47.70 ] > refreah
817 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:39:36.03 ] > refresh.vbs
818 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:07:54.59 ] CSVファイルを読み込んで、ちょっとした処理をしたかったのだけど、 読み込む対象のファイル名に半角スペースが入っていた場合どうすればいい? ここを参考にしたんだけど、 ttp://vaindespair.blogspot.com/2009/04/blog-post_09.html 半角スペース入りのファイル名だとうまくいかないのです。 ・・・と書いてて閃いたw FOR /F "tokens=1,3 delims=," %%a IN ( 'type "hannkaku space irino file.csv"' ) DO (
819 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:22:23.19 ] FOR /F "usebackq tokens=1,3 delims=," %%a IN ( "hannkaku space irino file.csv" ) DO ( だよーん
820 名前:818 mailto:sage [2012/03/09(金) 22:29:58.17 ] ありがとう!
821 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:58:55.52 ] forでcsvって難しくないか? "abc,def","pqr","xyz" ってなのがあったらモー駄目だろ?
822 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 03:16:58.48 ] >>812 set a="c:\tmp\Aフォルダ" set b="c:\tmp\Bフォルダ" set list="c:\tmp\B-A_list.txt" call >%list% for /f "usebackq delims=" %%b in (`dir /a-d /b %b%`) do @if not exist %a:~0,-1%\%%b" >>%list% echo %b:~0,-1%\%%b"
823 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 03:26:27.10 ] set a="c:\tmp\Aフォルダ" set list="c:\tmp\B-A_list.txt" call >%list% cd /d "c:\tmp\Bフォルダ" for /f "delims=" %%b in ('dir /a-d /b') do @if not exist %a:~0,-1%\%%b" >>%list% echo "%%~fb"
824 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 04:11:12.36 ] findstrは?
825 名前: 忍法帖【Lv=14,xxxPT】 mailto:sage [2012/03/10(土) 20:05:58.09 ] 質問です。よろしくお願いします。 バッチファイル(あひゃ.bat)を優先度低で実行させるために start /b /belownormal あひゃ.bat と書かれているcmdファイルを作成し、それを実行させているのですが、 あひゃ.batが終了してもDos窓が閉じません。 終了後に自動で閉じるようにするにはどうしたら良いのでしょうか?
826 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:10:47.82 ] start /b /belownormal cmd /c あひゃ.bat
827 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:31:41.10 ] あひゃ.bat に echo %cmdcmdline% を入れてみりゃ理由がわかる
828 名前:825 忍法帖【Lv=14,xxxPT】 mailto:sage [2012/03/10(土) 21:12:23.08 ] 早速のレス、感謝します。 >>826 サンの方法で見事にDos窓が自動で閉じました。 >>827 サンのとおりに実行したらなんとなく解ったような気がします。 cmd /k と cmd /c の違いですね。help startとかhelp cmdを読んでないのがバレバレ(;´∀`) なんとなく思い込みでstartコマンドの/bオプション(ウインドウを作成しない)を付けたのですが、 実はコレ無くても良かったみたいです。(じ、実は/bオプションの意味もよく解っていないっ!(∀`*ゞ) とにかく期待通りに動いたので満足です。 お二方ともありかとうございました。
829 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 21:13:49.52 ] batを起動しっぱなしにして タスクマネージャのタスク名に指定した名前(例えばメモ帳を立ち上げて「無題 - メモ帳」など)が出たら ログに書き込むというのはbatで出来ますか?
830 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 21:18:31.36 ] tasklist
831 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:28:53.73 ] wmic process get name
832 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 14:15:58.30 ] >>808 WSHと組み合わせないと無理だったはず
833 名前:818 mailto:sage [2012/03/11(日) 23:14:37.36 ] >>821 そこまで本気なことをするには荷が重いものだと理解してます。 (できるかもしれないけど、数ヵ月or数年後の自分に理解ができない、と思うので)
834 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 00:12:38.31 ] >>808 clip.exeか類似ソフト使えば出来る
835 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 04:15:25.41 ] 内蔵のclip.exeじゃだめだけどな
836 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 06:41:41.28 ] スレタイ(ry
837 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 16:34:50.59 ] >>832 WSHったってIE使ったりして大変だろ? >>809 お勧めは?
838 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 17:24:09.19 ] >>837 > WSHったってIE使ったりして大変だろ? ならば>>809 のは全部同類だから「大変」だ
839 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 18:01:20.27 ] そうなのか? 簡単に書けるものってないのか?
840 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 18:50:35.07 ] powershellなら簡単よ
841 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 23:45:56.93 ] for /f "usebackq tokens=1,* delims=[]" %i in (`mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('Text')));"^|find /v /n ""`) do @set "c[%i]=%j" これでどうだろう
842 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 02:24:40.37 ] まあまあやね
843 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 02:31:28.01 ] 及第点やね powershell版もできたら満点や