1 名前:デフォルトの名無しさん [2009/05/14(木) 11:29:31 ] 前スレ 【.cmd】 バッチファイルスクリプト %4 【.bat】 pc12.2ch.net/test/read.cgi/tech/1229955189/
411 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:10:49 ] more|notepad /dev/stdin みたいなことはできないのですか?
412 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:16:31 ] echoで2段階にファイル書き出しをしたいのですが、うまくできません。 echo echo start "" コマンド.bat "引数" >B.bat >>A.bat 上記コマンドを実行して、まずA.batに echo start "" コマンド.bat "引数" >B.bat を書き出し、その作成したA.batを実行しB.batに start "" コマンド.bat "引数" ができるようにしたいのですが、実際には最初のコマンドを実行したところでA.batに echo start "" コマンド.bat "引数" のように、 >B.batが抜けた状態で作成されます。 何かいい方法は無いでしょうか。ご教示お願いいたします。
413 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:40:05 ] こんな感じか? echo echo start "" コマンド.bat "引数" ^>B.bat >A.bat
414 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:08:33 ] >>413 当方412ではありませんが、感動しました。 ^>を使えばそういう事ができるんですね 差し支えなければ、^のしくみを教えていただけないでしょうか?
415 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:19:52 ] (^^)
416 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:42:53 ] >>414 単なるエスケープ文字
417 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 17:30:23 ] ^^は^をエスケープしてるので echo (^^) は (^) となる
418 名前:412 mailto:sage [2009/11/18(水) 20:00:18 ] >>413 レス遅くなって申し訳ないです。ありがとうございました! ばっちり希望どおりの動作をしてくれるようになりました! >>416 >>417 仕組みがよくわかってなかったので勉強になりました。 みなさんどうもありがとうございました。
419 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:15:12 ] bash とかでいうところの``で囲んだ時のような、コマンドの出力結果をコマンドラインオプションに回す文法はありませんか?
420 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 23:41:46 ] for /f "usebackq" %I in (`dir /b`) do echo %I
421 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:28:27 ] >>420 ありがとうございました
422 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:56:20 ] usebackqはコマンド中に「'」を使う必要がある時に「'」の代わりに「`」を使うってオプションだろ? for /f %i in ('dir /b') do echo %i でいいのに何故わざわざusebackq付けんの?
423 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 02:15:37 ] 420じゃないけど常に usebackq 付けるようにした方が面倒な事考えなくて済む。 www.atmarkit.co.jp/fwin2k/operation/command008/command02.html
424 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:02:45 ] 好みだろ どーでもいー
425 名前:423 mailto:sage [2009/11/21(土) 16:20:50 ] >>424 そう、好み てか昔ハマッたことがあるから、俺は付ける派
426 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 13:26:23 ] 外部プログラムを起動させるコマンドを実行すると そのアプリが終了するまでbatへ制御が戻らないのですが それを回避することは可能ですか?
427 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 13:48:22 ] startコマンドを使う
428 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 16:10:21 ] batファイルを分けることなく処理の優先順位を変更する方法があれば教えてください。
429 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 18:57:10 ] startコマンドを使う
430 名前:428 mailto:sage [2009/11/24(火) 19:10:35 ] >>429 start /b /low :exec ではうまくいきませんでした。 どのように記述すればいいのでしょうか?
431 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:29:40 ] ところで ttp://itpro.nikkeibp.co.jp/article/Windows/20051006/222374/ start /b test.bat てどういう意味がある? call test.bat とは違うの?
432 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 12:44:00 ] ウィンドウ開かないだけで、別プロセスのcmd.exeが立ち上がる…んだと思う。
433 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:20:58 ] >>431 誰が書いたか知らんが、阿呆が意味も分らず、最初のオプション使って、無理矢理、使用例を作っただけなんだろ
434 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:25:13 ] >>430 goto %1 start /low "" %0 :exec
435 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:18:48 ] そういやstartって start file はokで start "file" はngな時があるけどどういう理屈なんだろうか
436 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:27:01 ] 理屈って言う程のことはないよ start/?見りゃ自明だろ?
437 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:32:00 ] >>430 wmiのsetpriorityを使え
438 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 20:12:44 ] そんなこと言っても難しかろ startにしとけ
439 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:25:00 ] data.dat というファイルがあったとして、これを一日に一回 data1129.datみたいに日時をつけてバックアップとして保存していけるようなバッチファイル 作れる方いましたら教えてください スタートアップに登録するとして、同日に一回でも度ってあったらコピーしないという仕様で
440 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 03:40:36 ] if not exist data%date:/=%.dat copy /b data.dat data%date:/=%.dat
441 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:46:20 ] プロンプト文字にerrorlevel出すにはpromptコマンドにどう書けばよい?
442 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:20:51 ] これは、結局バッチスクリプトとは関係ないんですけど、copyコマンドでオプションに /A(テキストモード)を指定しても、BOMありUTF-8のテキストファイルを結合すると ファイルとファイルの間にBOMが残るんです。 現在はWinXPのコマンドプロンプトでしか試せないんですが、VistaやWin7なら、ちゃん とBOMを外してくれますか?
443 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:40:21 ] Vistaでやってみたが、入ってるね /Aは改行コードしか見ないだろうから仕方がないかも
444 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:44:42 ] あ、改行とEOFだったかな
445 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:41:05 ] /A ASCII テキスト ファイルとして扱います。 UTF-8じゃないのに何言ってんだか
446 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:50:38 ] /Aが改行をどうするって?
447 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:49:14 ] COPY /8
448 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 14:30:54 ] バッチスクリプトならできるが、関係ないな
449 名前:442 mailto:sage [2009/12/03(木) 18:30:00 ] >>443 Vistaでも駄目ですか、どなたかWin7の状況を教えて下さい。
450 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:27:40 ] 逆に7でこの挙動が変わってたらおかしいでしょう
451 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:43:06 ] 別におかしくないが?
452 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:46:19 ] chcp 65001
453 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 21:15:54 ] BOM削除してからcopyすれば?
454 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 21:54:01 ] ところで^Z削除するのはどうすれば?
455 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 15:10:43 ] >>452 フォントを変えるコマンドは?
456 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:47:30 ] ぐぐれ まあ変えても解決にはならんが
457 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:58:36 ] 作れ setconsolefont() setcurrentconsolefontex()
458 名前:デフォルトの名無しさん mailto:sage [2009/12/08(火) 13:13:56 ] 代替コマンドシェルにnyacusなんてのがあるんだな。 cmdと比べると構文が結構まともだ。 PowerShellより圧倒的に軽いしちょっと覚えてみる気になった。
459 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 03:55:32 ] nyacus落ちない?数年前に使ったけど、それでやめた。
460 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 01:06:30 ] 今のところ落ちてないよ。まだ大した使い方してないけど。 最終更新日が先月でまだまだメンテが続いてるね。
461 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 15:53:24 ] CMD.exeのfor文は頑張りすぎ
462 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 18:23:45 ] runasの/trustlevelってどういうときに使うの?
463 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:14:34 ] for /F %%a in (filelist.txt) do move "%%a" %dir% filelist.txtにファイルの一覧をリストアップしてそのファイルをすべて特定のフォルダへ移動したいです ですがファイル名に半角スペースが含まれていると移動されずにスルーされてしまいます 困ってしまいます お願いします
464 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:15:18 ] >>439 >>440 これの改良版で1週間分のみバックアップを残す仕様に出来る方おりませんか? ファイルが7個以上あった場合、古いものから消していくようになると思うんですが
465 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:25:48 ] >>463 "delims="
466 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:32:10 ] >>464 for /f "skip=6 delims=" %%i in ('dir /b/o-d data*.dat') do del %%i これで新しいものから順に6個を除いたファイルは全部消える
467 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:33:20 ] >>465 ありがとうございました 助かりました
468 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 11:52:30 ] カレントディレクトリを取得するのに for %i in (.) do set cdir=%~dpnxi とかやってるんですが、もっとスマートな方法はないですしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 12:04:19 ] %CD%とかじゃ駄目だっけ?
470 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:46:31 ] フルパスをゲットするなら%cd%でいい c:\a\b\c\d\thisdir のthisdirをゲットするなら %cd:\=&set cdir=% echo %cdir% とか。
471 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 19:32:42 ] set cdir=.
472 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 03:10:06 ] set cdir=. echo %cdir% . ダメじゃんw
473 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 19:05:35 ] set cdir=%cd% echo %cdir%
474 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 11:07:38 ] %CD%なんてあったんですね。ありがとうございます。 カレントディレクトリがセットされた環境変数は ありそうだと思って set<enter>して探したのですが、これにはでないみたいです。 「特殊な環境変数」でググると%CD%以外にもいろいろ知ることができました。
475 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:11:28 ] set/?
476 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:14:37 ] カレントディレクトリはドライブごとにある echo %=c:% echo %=d:%
477 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:16:28 ] >>476 知らなかった・・・
478 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:37:09 ] set, で=*環境変数も表示
479 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:40:28 ] 2009年も終わろうとしてるのに今更cmdのtipsなんて何の意味がある。 PowerShellに乗り換えようぜ。
480 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 15:50:56 ] =::=::\ は何?
481 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 22:25:59 ] >>479 PowerShellがNTに載ったらね
482 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 14:51:01 ] おまえらスレチガイ pc12.2ch.net/test/read.cgi/win/1221046998/
483 名前:デフォルトの名無しさん [2009/12/21(月) 15:23:45 ] ipアドレスの3ブロック目で判断して、 レジストリを修正するバッチファイルが作りたいのです。 ipconfigしても情報が多すぎるし、 ドット2つの後ってどうしたらいいんでしょう…。 どなたかご教授願います。
484 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 15:26:03 ] for /f "delims=. tokens=3" %I in ("1.2.3.4") do echo %I
485 名前:sage [2009/12/21(月) 16:36:18 ] >>484 素晴らしすぎます!!! というか私の知識不足…頑張り不足…でしょうか。 ありがとうございました!
486 名前:483 mailto:sage [2009/12/21(月) 19:26:24 ] お陰様でここまできました。 for /f "tokens=14 delims=: " %%I in ('ipconfig ^| find "IP Address"') do set IP=%%I for /f "tokens=3 delims=." %%I in ("%IP%") do echo %%I echo %IP% ただ、スマートじゃないというかなんというか…。 こんなもんでしょうかね。
487 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:05:22 ] tokens=14 ってなんじゃそら。 skip=n でn行飛ばせるって知ってるよな?
488 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:55:04 ] 出たか、知ったかぶり。お手並み拝見
489 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 13:14:33 ] 横からだけど俺的にはアリだな。 tokens=14 を数える事は二度と無いとしても、将来コピペで使い回した時、 このスレでのやりとりを良い思い出として生暖かく思い出せるw "tokens=2 delims=:" だったら何も心に響かない。
490 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 17:32:15 ] OSにもれなくついてくるおまけの機能に多くを求めてはいけない。 メモ帳やペイントに不満を感じるなら勝手に別のアプリをお使いくださいというのがMSの基本姿勢。 不便だろうが欠陥があろうが知ったことではない。
491 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 17:47:03 ] delimsを.だけにすれば1行で書けるだろ? for /f "tokens=?? delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I ??は自分で数えろ
492 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:26:46 ] skipがどうしたって?
493 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:45:11 ] どんぐりの背比べ
494 名前:483 mailto:sage [2009/12/22(火) 18:47:08 ] >>491 ありがとうございました。 for /f "tokens=15 delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I でバッチリ取得出来ました。 これが一番スマートですね。助かりました!
495 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:53:36 ] バッチごときでスマートって しまむらで洋服買って自慢してるようなもんか
496 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:09:54 ] すっぱい葡萄
497 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:45:16 ] たぶん for /f "tokens=15 delims=." %%I in ('ipconfig') do echo %%I でもいける
498 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:53:10 ] どんぐりの背比べ
499 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 21:55:38 ] すっぱい葡萄
500 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:33:10 ] skipがどうしたって?
501 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:04:04 ] フォルダを五十音で分配したいのですが、バッチファイルでできるんでしょうか? 1)具体的にはデジカメで写真を撮影した事を想定してください。 D:\デジカメ写真データ\001.jpg D:\デジカメ写真データ\002.jpg ・ ・ D:\デジカメ写真データ\009.jpg D:\デジカメ写真データ\010.jpg 2)それを撮影場所ごとに整理します。(ここまでは人間の手でやります。) D:\デジカメ写真データ\きんかくじ(金閣寺)\001.jpg D:\デジカメ写真データ\きんかくじ(金閣寺)\002.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\003.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\004.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\005.jpg D:\デジカメ写真データ\とうだいじ(東大寺)\006.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\007.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\008.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\009.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\010.jpg 3)ここでバッチファイルをくりっくすると D:\読み順フォルダ\か行\きんかくじ(金閣寺)\001.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg とやりたいです。
502 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:08:36 ] D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
503 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:12:03 ] そこまで人の手でやれよ。
504 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:17:13 ] 写真を分類するソフトなら腐るほどある。
505 名前:デフォルトの名無しさん [2009/12/26(土) 12:57:24 ] ゴミの山(Dドライブ)を見てたらすんごいもの見つけたww codepad.org/xzEwdV3R なんかかなり昔作ったVB風の記述でバッチファイルを吐く言語の ソースファイルっぽいw 今コンパイラ探してる
506 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:04:17 ] #EXPAND BatchBasic Sub Main() Print("Hello World.") End Sub Sub Print(str) #NATIVE ECHO %str% End Sub
507 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:06:23 ] >>501 できるけど、その程度の代物だったら手作業と大して変わらん手間だろ。
508 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:48:26 ] >>505 batに生産性を求めてどうする
509 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:27:40 ] >>508 生産性がよくなるんだろ?
510 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 22:38:09 ] 管理者として実行されてるか?を判定するには?
511 名前:デフォルトの名無しさん [2009/12/27(日) 10:14:31 ] 管理者権限でしかアクセスできないフォルダにアクセスしてERRORLEVELで調べる