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/
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版もできたら満点や