- 1 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 15:12:30.34 ]
- 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.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/
- 382 名前:デフォルトの名無しさん mailto:sage [2011/04/25(月) 12:51:52.37 ]
- set aa=aa
start /wait cmd.exe /c foo.bat aa echo %aa% -foo.bat echo %* echo %aa% set aa=bb
- 383 名前:デフォルトの名無しさん mailto:sage [2011/04/25(月) 16:27:36.12 ]
- >>379
惜しいな cmd.exe /c foo.bat でいいよ
- 384 名前:デフォルトの名無しさん mailto:sage [2011/04/25(月) 19:03:33.39 ]
- >>380
関係無いけど goto :eof と goto eof 使い分けるのは初心者イジメだなw
- 385 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 14:11:26.61 ]
- >384
関係あるよ >>380は単なる初心者だろ goto :eofを知らない だからexit/bを使う endlocalは不要を知らない
- 386 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 14:32:45.57 ]
- >>385()
- 387 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 16:21:43.93 ]
- eofがどうとか言う以前に突っ込み所多すぎだろ。
動かないバッチ前にして何をグダグダやってんだか。
- 388 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 16:26:42.93 ]
- >>387
何をグダグダやってんだか。
- 389 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 16:37:19.77 ]
- >>387
ほれ ぐだぐだ
- 390 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 17:06:34.80 ]
- endlocalは不要を知らない
endlocalは不要を知らない endlocalは不要を知らない
- 391 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 18:56:16.13 ]
- 何をグダグダやってんだか。
何をグダグダやってんだか。 何をグダグダやってんだか。
- 392 名前:デフォルトの名無しさん [2011/04/26(火) 19:33:02.70 ]
- フォルダにあるファイルの名前から数字とそれ以外を抜き出して、
違う名前にリネームしていきたいのですが、 g001hoge → "g" "001" "hoge" に分離 → "ghoge001" を生成 g002hoge → "g" "002" "hoge" に分離 → "ghoge002" を生成 g003hoge → "g" "003" "hoge" に分離 → "ghoge003" を生成 どう書けばよいでしょうか?
- 393 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 19:42:23.83 ]
- set/?
- 394 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 21:30:48.22 ]
- ヒントじゃなく答えを欲しがる人にはバッチや sed 系の何かより、
むしろ Flexible Renamer を勧めたい。
- 395 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 10:50:32.23 ]
- batファイルでxmlを操作するのって不可能ですか?
<top> <tax>1.05</tax> <item name="たまご" price="250"> </top>
- 396 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 10:58:54.60 ]
- xslプロセッサかe4x使えよ。
- 397 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 05:46:52.36 ]
- >>395
不可能じゃないからやれば?
- 398 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 22:00:52.19 ]
- どうやるんdすか?
- 399 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 13:31:46.32 ]
- 毎日サーバからzipをダウンロードするのですがzipの中で特定の拡張子のファイルのみをbatファイルで一発で展開したいと思います
7Zipを使ってます これをbatファイルに保存して実行するとtest.zipの拡張子txtのファイルを全て展開します これを1回のコマンドでtxtだけでなくpdfもにも対応するにはどのように書いたらよいのでしょうか? C:\7-Zip\7z.exe e test.zip -oC:\hozon .txt -r .(txt|pdf)みたいに書ければよいのですが・・・
- 400 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 13:41:38.28 ]
- >>399
2回実行するか マニュアルよくよんでみるか どうしても1回って意味不明な縛りがよくわかんね
- 401 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 14:34:18.77 ]
- 2回に分けると2度zipにアクセスするのが無駄なので1回でtxtとpdfファイルを取り出したいのです
マニュアルには複数拡張子は書いてないので出来ませんよね
- 402 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 14:58:49.64 ]
- そもそも特に拡張子のことなんて書いてないだろ
それっぽいのを拡張子だと判断するのは勝手だが。 拡張子という言葉を頭から削除してマニュアルもっと見ろ
- 403 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:03:20.73 ]
- >2回に分けると2度zipにアクセスするのが無駄なので
そこまで考えるほうが無駄だろ?下手の考え休むに似たりってなw
- 404 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:31:07.67 ]
- C:\7-Zip\7z.exe e test.zip -oC:\hozon .txt -rのところの.txtに正規表現で*.(txt|pdf)も指定できれば良いのですよ
- 405 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:37:19.88 ]
- と思ったら解決できました
- 406 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:38:24.03 ]
- それはそれはよろしいですね! では、よろしく!
- 407 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:40:42.81 ]
- どうでもいいが
*.(txt|pdf) というのは正規表現じゃないと思うのだが…
- 408 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 15:59:25.68 ]
- ワイルドカードでもない
- 409 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 17:24:50.56 ]
- だが言いたいことは分かる
- 410 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 19:31:59.45 ]
- じゃあ、読んで字の如く、ワイルド表現ちうことで
- 411 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 17:58:41.82 ]
- バッチファイルの中からMSのsdkに付属のbin\setenv.cmdを呼び出して、環境変数を設定しようと
call "c:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.cmd" /Release /xp と書いたらsetenv.cmdの中に SET Path=%VCTools%;%VSTools%;%SdkTools%;%FxTools%;!Path! などと書かれていて、最後の!Path!(オリジナルのPATHでなく)がそのまま残ってしまいます。 !が%と見なされるような呪文があるのでしょうか?
- 412 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 18:13:13.56 ]
- >>411ですが、自己解決しました。
- 413 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 01:45:29.85 ]
- > !が%と見なされるような呪文があるのでしょうか?
そういう呪文、ありますなぁ…
- 414 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 02:43:47.53 ]
- せっとろうかるでぃせいぶるでぃれいどいくすぱんしょん
- 415 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 08:36:32.44 ]
- EnableDelayedExpansion
って書いて欲しいなあ、とよく思う… 大文字だけとか小文字だけだと読みにくいw
- 416 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 12:05:41.98 ]
- そもそもつなげて書くのが間違い。
ちゃんとスペース空けろ!
- 417 名前:デフォルトの名無しさん [2011/05/08(日) 16:07:11.53 ]
- C:\test\2010\の中にsample_xxx.zipというファイルがあります
このこのファイル名のxxxのx部分には数字と . 半角英字が入ります この規則のファイルはフォルダの中に1つしか存在しません このファイル名を取得して変数に入れる方法はございませんでしょうか? 想定するファイル名 sample_1.0.5.zip sample_1.12.3.zip sample_2.0.zip sample_2.0b1.zip
- 418 名前:デフォルトの名無しさん [2011/05/08(日) 16:14:43.80 ]
- set dir = dir sample_*.zip
echo %dir% で取れるのかなと思ったのですが無理でした
- 419 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 16:18:33.11 ]
- for %f in (sample_*.zip) do set dir=%f
- 420 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 16:59:08.76 ]
- >>419
ありがとうございます
- 421 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 18:47:26.85 ]
- $dir = dir sample_*.zip
echo $dir
- 422 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 20:18:54.40 ]
- >>421
誰もそんな事は聞いてないの。
- 423 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 12:11:48.86 ]
- batファイルでゲームって作れるの?まあ作ってる人いないだろうけど
- 424 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 13:25:22.39 ]
- >>423
batにスクリプト言語埋め込んで、ならやったことあるが バッチファイルの標準添付コマンドのみで 埋め込みJSとかも禁止、とかになると流石にやる気しないw
- 425 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 13:27:11.97 ]
- …あ、でも数当てゲームぐらいなら作ったことあるような気もする
これをゲームの内に入れても良いなら「ある」ことになるかなw
- 426 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 17:29:12.48 ]
- ディレクトリの存在確認で
if exist c:\tmp\nul ... というテクニックがありますが、名前に空白を含むディレクトリの確認をしようと ダブルクォートでくくったら正しく動きませんでした。 調べてみるとc:\tmpというディレクトリが存在するとき 1 if exist c:\tmp 2 if exist c:\tmp\nul 3 if exist "c:\tmp' 4 if exist "c:\tmp\nul" で4だけifが成立しません。今回はcd出来ることで確認したけれど、後学の ためにif existで正しくディレクトリの存在確認をする記法を教えてください。 OSはXpSP3です。
- 427 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 17:35:13.48 ]
- "c:\tmp\"
- 428 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 18:54:42.75 ]
- ttp://support.microsoft.com/kb/65994/ja
- 429 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 18:56:31.05 ]
- ttp://support.microsoft.com/kb/77361/ja
- 430 名前:デフォルトの名無しさん mailto:sage [2011/05/11(水) 21:16:46.54 ]
- >>427でOKでした。NTFSなので>>428-429によるとできるはずなのにバグですかね。
でも、ファイルシステムの違いで出来ない場合もあるんですね。まんどうだなあ。
- 431 名前:デフォルトの名無しさん mailto:sage [2011/05/12(木) 01:50:07.54 ]
- ディレクトリの存在確認はいろいろややこしいw
d.hatena.ne.jp/otn/searchdiary?word=%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8%A5%EA%A4%AB%A4%C9%A4%A6%A4%AB%A4%CE%C8%BD%C3%C7&.submit=%B8%A1%BA%F7&type=detail
|

|