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 あたり
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使わなければいいんじゃないの?