1 名前:デフォルトの名無しさん [2008/12/22(月) 23:13:09 ] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 ◆◆ご注意◆◆ Windows板の「初心者〜管理者まで必読!コマンドライン(DOS Pt.*)」スレや PC初心者板のURLを貼りたがる人は、削除人にも認定された荒しですので その人に指示に従う必要はありません。 ◇前スレ 【.cmd】 バッチファイルスクリプト %3 【.bat】 pc11.2ch.net/test/read.cgi/tech/1217860043/ ※関連スレは>>2 あたり
744 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 19:14:43 ] >>741 まだわかんねーのかい・・・ set imagedir = gazou これの意味するところは変数「imagedir 」(最後にスペース)に「 gazou」(最初にスペース)を入れるということ。 決して「imagedir」に「gazou」を入れるという意味ではない。 後者は set imagedir=gazou だから。
745 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 19:57:21 ] >>744 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaそういうことだったんですね!!!!!!! ありがとうございました解決です!
746 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:06:14 ] c:\ahou(阿呆を入れているフォルダ)に移動してそこのファイル・フォルダ一覧を取得したいです image.txtとpath.txtに分け、path.txtに画像を入れているフォルダ名を入れ、 image.txtからpath.txtを読み込み、フォルダに移動して一覧を表示させたいのですが image.txtのcdを実行した時にc:\%imagedir%に変数にセットした値が反映されず、c:\となってしまいます 変数に格納したフォルダ名を利用して、cdを実行した時にc:\ahouに移したいのですがどなたかご教示お願い致します
747 名前:737 mailto:sage [2009/04/15(水) 21:20:11 ] 念のため書きますが746さんと私は別人ですので
748 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:32:34 ] Uzzzzzzzzzzzzzzzzzzzeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaそういうことだったんですね!!!!!!!
749 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:34:47 ] ero画像を入れているフォルダ
750 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:35:47 ] ずばり!!!
751 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 21:46:05 ] aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaそういうことだったんですね!!!!!!! ありがとうございました正解です!
752 名前:737 mailto:sage [2009/04/15(水) 22:00:32 ] なんで絡まれるのかわかりません^^;
753 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 01:16:55 ] = の両側に空白を入れるあたり、Cやjavaなどの C系言語脳炎に侵された最近の若者っぽいですね。 Cなどの難しいことは良く知ってるのに、 バッチファイルなどの簡単な事は知らない。 教育が偏りすぎなんです。 もっと教育現場を見直す必要がありますね。
754 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 04:05:41 ] Java が C系言語? ???
755 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 04:26:59 ] VBAもC系言語?
756 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 09:01:49 ] Fortranだって空白入れるだろ。 「C系言語」とか意味不明だわ。
757 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 11:27:17 ] ALGOL系
758 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 12:11:55 ] >>756 それは後期になってC言語に影響されはじめてからのことだろ。 FORTRANで空白なんて入れてたらカードが何枚あっても足りない。
759 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 12:43:04 ] dosって結局2002年からバージョンアップされてないわけだろ 何がいいわけ?
760 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 13:07:12 ] ここdosのスレじゃないぜ
761 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 13:09:45 ] バッチファイルってdosコマンド使うんじゃないの?
762 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 16:38:56 ] うましかじゃないの?
763 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 17:35:40 ] 分からないならレスしないでください
764 名前:デフォルトの名無しさん [2009/04/17(金) 00:16:11 ] 通りすがりが学生の時に作ったバッチを晒してみる。 *.classを*.javaにするバッチ… 使い方は読めば分かる人には分かるだろうが classフォルダとjavaフォルダを作って classフォルダに*.classファイルとjad.exe(探せば拾える。googleさんにでも聞いてくれ) を置く 後はその↑の階層から実行すればOK rname.batは消すか何とかしてくれあれを晒すのは、ちょっと…^^; ほしい人がいたら上げて見るが、 多大なバッシングを受けそうな気が(これを上げる地点で受けそうな気もするが)… cd class jad.exe *.class jad.exe *$*.class for %%i in (*.jad) do native2ascii.exe -reverse %%i %%i.java cd .. call rname.bat // rname.batは*.jad.javaとなっているのを.javaにする copy /y *.java ..\java del *.jad del *.java てか、こんな処理もっと簡単にできるだろうにorz 長文失礼 追記 // ←これ使えたっけ?
765 名前:デフォルトの名無しさん [2009/04/17(金) 00:50:20 ] すみません。拡張子".Z"を解凍できる外部コマンドを教えてください expend?は無理でした よろしくお願いします
766 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 02:20:58 ] uncompress
767 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 02:38:22 ] icomp
768 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 10:05:01 ] >>765 7zip
769 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 02:45:40 ] 現在のプロセス数をタスクトレイに表示 そんなバッチファイルください
770 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 02:50:42 ] title `ps -efW | wc -l` みたいなことやればよし titleに情報表示って何気に便利なんだよな
771 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:39:48 ] バッチで、ps -eなんて使えるの?
772 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:51:21 ] 知ったかぶりは無視してください
773 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 16:08:14 ] Windowsで、ps -eなんて使えるの? バッチ で、` ` なんて使えるの?
774 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 17:17:04 ] powershellもどうせならbashコマンドに似せて作ってくれたらよかったのに
775 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 17:19:22 ] なるほど
776 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 03:50:20 ] 知ったかぶりは無視してください
777 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 03:53:26 ] なるほど
778 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 04:15:08 ] tasklist/nh|find /c /v ""|(set /p x=& call title %x%)
779 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:50:31 ] titleコマンドはいつからタスクトレイに表示するコマンドになったんだ?
780 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:53:24 ] 無理 の一言で済ませて欲しいならそっちでも構わないよ
781 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 16:24:46 ] なるほど
782 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:47:43 ] start /min cmd /k "tasklist/nh|find /c /v ""|(set /p x=& call title %x%)"
783 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 00:34:17 ] なるほど
784 名前:デフォルトの名無しさん [2009/04/20(月) 21:47:03 ] ご助言お願いします。 特定のディレクトリに、longfilename日付.txtというファイルが いくつかあります。※状況によってファイル数が変わる (例) longfilename20090417.txt longfilename20090419.txt longfilename20090420.txt これらのファイルの中身の"aaa"という文字列を"bbb"に変換したいのですが どのようにすれば良いでしょうか 以下のように書きましたが、うまくいきませんでした。 dir *.txt > tmp.txt type tmp.txt | find "txt" > tmp1.txt for /f "tokens=4" %%a in (tmp1.txt) do echo %%a >> tmp2.txt for /f %%a in (tmp2.txt) do sed -e 's/aaa/bbb/g' %%a > %%a 問題点としては、 ・Sed LOGOS版2.42が、ロングファイルネームのファイルを使えないっぽい ・4行目のfor文の記述では繰り返し処理が無理? 使用しているsedは、Sed LOGOS版2.42というものです。 よろしくお願いします。
785 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:02:47 ] >>764 自意識過剰すぎる 本当は今も学生なんじゃないか?
786 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:39:19 ] >>784 Sed LOGOS版2.42がどういう仕様かは知らないけど、 いくつかDOS/Win用sed使った経験からいうと、 sedの引数は '〜' じゃなく "〜" で括らないと 意図どおりにならない気がする。 それから、 > for /f %%a in (tmp2.txt) do sed -e 's/aaa/bbb/g' %%a > %%a 入力ファイルと出力ファイルが同じだと うまくリダイレクトできないんじゃなかったっけ? あと、実際のファイル名が分からないから念のため触れておくと、 > for /f "tokens=4" %%a in (tmp1.txt) do echo %%a >> tmp2.txt もしもファイル名に空白を含む可能性があるなら、 これだと空白でファイル名が途切れる。 for /f %%a in ('dir /b *.txt') do type "%%~a" みたいにすると、きれいにファイル名だけ取り出せるはず。
787 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:44:14 ] Sed LOGOS版2.42が、ロングファイルネームのファイルを使えない
788 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:45:05 ] for文の記述では繰り返し処理が無理
789 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:46:42 ] 知ったかぶりは無視してください
790 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:49:31 ] やっぱりロングファイルネームのファイルを使えないですか
791 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:01:38 ] やりかたがあほなんじゃないか?
792 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:08:25 ] 間抜けなコードだねw
793 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:21:25 ] ベクターにSed LOGOS版2.42があったので試してみた。 >>786 で挙げた点のうち、 > sedの引数は '〜' じゃなく "〜" で括らないと > 意図どおりにならない気がする。 これは '〜' でも大丈夫だった。 それから、DOS用なので>>787 のいうようにロングファイルネームは使えなかった。 でもショートファイルネームにすればいいだけの話なら、 for /f %%a in ('dir /b *.txt') do sed -e "s/aaa/bbb/" %%~snxa みたいにすればいけるよ。
794 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:23:15 ] ロングファイルネームのファイルを使えない間抜け
795 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:27:57 ] いやそんな面倒な事しなくても普通は出来るから。
796 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:51:03 ] ロングファイルネームが使えるWindows用sedって無いですよね?
797 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 00:00:55 ] >>796 これとか www.kt.rim.or.jp/~kbk/sed/
798 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 00:53:20 ] Cygwinでsed動かせばいいんじゃないの? まあCygwinはCygwinでパスの扱いに難を感じることもあるけどさ。
799 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 01:13:57 ] sed使わなければいいんじゃないの?