- 1 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 21:33:11 ]
- 拡張子が .cmd または .bat のバッチファイルの
スクリプティング(プログラミング)にかかわる 質問,テクニック(JScript,Perl等の埋め込みなど含む), 関連情報のためのスレです。 【関連スレ】 バッチファイルプログラミング 3.bat pc11.2ch.net/test/read.cgi/tech/1148485555/ WSH(・∀・)スレッド! Part 2 pc11.2ch.net/test/read.cgi/tech/1176698934/ Windows PowerShell (正式版リリース)1.0 pc11.2ch.net/test/read.cgi/tech/1163818863/ HTAをもっと流行らせる計画 pc11.2ch.net/test/read.cgi/tech/1124559962/ ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/ MS-DOS・Win3.1総合スレッド pc11.2ch.net/test/read.cgi/win/1025462258/ ※なんでも無理矢理バッチでやろうとせずWSH等の使用も 検討しましょう。
- 730 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 23:46:31 ]
- perlをバッチファイルにスクリプトとして埋め込む方法は見たことありますが、
cscript.exeもそういうことって出来るんですか?
- 731 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 23:55:01 ]
- >>730
例が>>291にありますよ
- 732 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:21:01 ]
- おお、できました。ありがとう。
これで端末変えるたびにperlを入れる手間から開放されるかも。
- 733 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:47:47 ]
- 埋め込みの理屈がまたわかってないけど、
↓みたいにすれば拡張子を省けるみたいね @if (0)==(0) echo off if exist %0 cscript.exe //nologo /e:jscript %0 > out.txt if exist %0.cmd cscript.exe //nologo /e:jscript %0.cmd > out.txt if exist %0.bat cscript.exe //nologo /e:jscript %0.bat > out.txt exit /b @end WScript.StdOut.WriteLine("Hello World!");
- 734 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:55:36 ]
- >>733
%~f0と書けば%0のフルパスが得られるのでもっと簡単にできますよ。 @if (0)==(0) echo off cscript.exe //nologo /e:jscript %~f0 > out.txt exit /b @end WScript.StdOut.WriteLine("Hello World!");
- 735 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:08:08 ]
- あ、なるほど。それなら暗記もしやすい。
んで、やっと埋め込みの理屈を理解。 @ifはjscriptの条件コンパイル(#ifdefみたいな?)でもあるんだね。 @if (0)から@endまでの間にBATコードを書いてもOKと。これはおもろい。
- 736 名前:711 mailto:sage [2007/11/09(金) 09:18:05 ]
- >>721
ダメでした。 >>729 そうします。
- 737 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 10:36:48 ]
- cmd.exeをコピーcmdxxx.exe
バイナリエディタで中の. B A Tか. C M Dを. X X Xに(unicode) .XXXの関連付けをcmdxxx.exe /c "%1" %*
- 738 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 11:11:26 ]
- なるほどねー拡張子さくっとリネームしてあきらるもよし
バイナリの番地探しで視力落とすもよしか 定かじゃないけど拡張子違うの動かしてるっぽい環境 を昔見た記憶がある。思い出せないけど cmd /c type "%1" | cmd %* cmd /c cmd < "%1" こんなんとかに近かったような、 今はっきり言えるのはそれが思い出せないって事だ
- 739 名前:デフォルトの名無しさん [2007/11/09(金) 11:52:21 ]
- まだやってるのかよ。
本人が納得したんだから、もう終わった話だろ? >>737-738 ウイルス作成の話題は板のルールで禁止されています! おまいら視ね!!!
- 740 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 18:18:43 ]
- cmd <%1 方式はバッチの機能が使えないから使い物にならんよ
- 741 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 19:46:20 ]
- ayasige.exeをayasige.txtにリネームして、
[cmd /c] ayasige.txt で動くcmd.exeのほうがよっぽど如何わしいぞ
- 742 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:11:10 ]
- パラメーターのファイルの容量は%%~z1でいいんだけど、変数%HOGE%に入ったファイルの容量ってどうやって調べるの?
- 743 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:54:04 ]
- for %%i in (%HOGE%) do echo %%~zi
- 744 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:02:57 ]
- >742
それプログラミングの話か? パソコンの使い方はスレ違い以前に板違いだぞ
- 745 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:04:12 ]
- PC初心者
pc11.2ch.net/pcqa/ Windows pc11.2ch.net/win/
- 746 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:28:03 ]
- >>743
なーるほど、ありがとうございました >>744-745 なるほど、ありがとうございました(笑)
- 747 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:24:57 ]
- バッチファイルで現在いるフォルダ名を取得する方法ないかな?
C:\Program Files\Internet Explorer だったら Internet Explorer を取得したいんだけど、よい方法が思い浮かばないです
- 748 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:54:40 ]
- >>747
for %%I in ("%CD%") do echo %%~nI
- 749 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:15:54 ]
- >>747
%cur%に取得 for %%I in (.) do set cur=%%~nI%%~xI
- 750 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 14:22:54 ]
- CALL :tekitou %CD%
GOTO :EOF :tekitou ECHO %~f1 GOTO :EOF
- 751 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 14:24:20 ]
- 間違えた、%~n1 だった
- 752 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:00:05 ]
- 「あるプロセスが終了したら」や「あるプロセスが起動していたら」などの条件を指定することは可能でしょうか?
- 753 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:01:46 ]
- if hoge==あるプロセスが終了したら echo hage
- 754 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 01:06:26 ]
- wmic.exe
or tasklist.exe
- 755 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 03:25:31 ]
- wkill.exe /w | find /i "あるプロセス"
↑ フリーソフト
- 756 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 04:11:03 ]
- Windows標準以外のコマンドを使うのはありだっけ?
- 757 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 09:01:19 ]
- DOSで用が足りることならバッチでもいいけど、
Win用途にはバッチは使わないのが吉 DOSやバッチは過去の遺産
- 758 名前:デフォルトの名無しさん [2007/11/19(月) 16:18:42 ]
- ↑
こういう事を言うヤツに限ってさ、まともにバッチすら書けないんだよねぇ〜
- 759 名前:デフォルトの名無しさん [2007/11/19(月) 16:20:20 ]
- ファイルを1個コピーすんのにも、わざわざjavaか何かでゴリゴリとコード書いてコンパイルしてんのかねw
- 760 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:18:47 ]
- 下手に自分のマシンにUnixコマンドforWinみたいなのを入れると
ついうっかり納品用のバッチファイルに書いちゃって焦るときがある。 Sleepとか。
- 761 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:49:36 ]
- >>760
sleepも納品すべし。
- 762 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:51:24 ]
- バッチで納品なんてあるの?
- 763 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 00:27:44 ]
- 納品物の中にバッチが含まれていることはよくある
- 764 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 06:24:30 ]
- CMD->VBS,JScript
↓ PowerShell とMSは極端なんだよな。 CMDとPSの間の軽くて使いやすいシェルスクリプトリリースしろよ。
- 765 名前:747 mailto:sage [2007/11/20(火) 22:26:40 ]
- >>748-751
d出張行ってて今帰ったとこですた for %%I in (.) do set cur=%%~nI%%~xI これすげー、"."で出せるんですね また一つ勉強になりました
- 766 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 11:47:39 ]
- >>764
PSでかまわんけど、文字コードなんとかしてくれよんと思う。
- 767 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:45:35 ]
- 俺のD言語の開発環境だ!基本はD&Dで投げてコンソール眺めて、色付エディタで書く。って感じ。
budはビルドツールでネット上にある。Dには、定番のIDEがまだ無い。だれか作ってくれ。 ------bud_.bat----------- bud %1 %2 %3 %4 %5 %6 -odoutputByD pause ------------------------ ------exec.bat----------- %1 pause ------------------------ ------dmd_con.bat-------- dmd %1 %2 %3 %4 %5 %6 pause ------------------------
- 768 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:02:13 ]
- FATのBPB部分をイメージ化しておいて、それをFDのBPB部分にだけ書き込みたいのですが
どう書けば良いのでしょうか? 過去に間違ってフォーマットしてしまって開始直後に止めた BPBが破損したメディアがいくつかあるのですが、 いちいちディスクごとイメージに落として BPB直してもっかい書き直す、ってのは面倒なので… よろしくお願いします
- 769 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:09:25 ]
- PC初心者
pc11.2ch.net/pcqa/
- 770 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:19:48 ]
- 早速頭の可笑しい人769が登場w
- 771 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:28:47 ]
- >768
装置番号やセクタ番号指定すりゃ読み書きできるだろうけど、スレ違いだアホ
- 772 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:31:47 ]
- >771
パソコンの使い方の質問はスレ違い以前に板違い ここはパソコン初心者が来る板じゃない
- 773 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:00:48 ]
- 772は頭が不自由なので理解できないのだろうが、
「パソコン初心者が来る板じゃない」というのは間違い。
- 774 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:58:40 ]
- 初心者か否かっていう要素が無いわな…
- 775 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:10:02 ]
- >>768
う〜ん、バッチの範疇を越えてる気がするなぁ。 そういうコマンドラインツールがあればバッチで出来るかも知れんが あったとしてもそのツール次第で書き方変わるだろし。
- 776 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:46:27 ]
- バッチいファイル
- 777 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 18:30:54 ]
- doskeyマクロはバッチの中で使えないの?
- 778 名前:デフォルトの名無しさん [2007/11/29(木) 18:55:27 ]
- >>777
使えるよ。 @echo off doskey a=unko set /p x=キー入力してください: echo あなたが入力したのは [%x%] です。 pause こんなバッチを作って、起動したら a とキー入力してごらん。
- 779 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:57:03 ]
- 初心者にパソコンの使い方を教えるスレ
- 780 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:34:14 ]
- バッチから一歩先を逝きたいんだけど
wshとPower SHELLならどっちをやるべき?
- 781 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:35:59 ]
- バッチの中でそのaが使えるか?
- 782 名前:デフォルトの名無しさん [2007/11/29(木) 23:50:14 ]
- >780
その作品でカバーしたいOSよるだろ? PSはOS既定でなくインストールを伴うので、前提が必要だぜ?それでもいいならPSだろ。 そんなことより 会社のWinXPSP2Proで ECHO. が使えないことにビビッたw。 なんか変なバージョンのCMD.EXEでも入ってるのかなー。
- 783 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:04:44 ]
- echoじゃなくてecho.?
改行だけ表示することができないってこと?
- 784 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:43:35 ]
- >>780
もちろん両方
- 785 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:44:58 ]
- >780
WSHはWin95/NTからでも使える事もあってノウハウが多く公開されている分とっつきやすいと思う。 PowerShellはWinVistaの他にはWinXPのSP2とWinServer2003のSP1でしか使えないってのがなぁ・・・。 ttp://support.microsoft.com/kb/926140
- 786 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:09:10 ]
- >>780
PSはおもちゃって感じでイマイチ便利感がないんだよな wshとかAutoHotKeyの方が楽できる コマンドプロンプト常時起動だとやっぱbatも常用するし。 結局、一歩先とかなくて適材適所なわけよ、坊主
- 787 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:39:44 ]
- pythonとwin32comの組み合わせでwshとほぼ同じこと+αが出来る
- 788 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 04:54:05 ]
- >>782
ECHO= なら使える?
- 789 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 04:57:28 ]
- >>785
PSの最大の欠点は文字コードかなぁ。 ローカルマシンの設定使ってくれないと困ること多発
- 790 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 09:58:31 ]
- cmdは文法のつぎはぎがひどいが
vbsは根本から腐ってるな 書いてて最もストレスのたまる言語だ
- 791 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:09:20 ]
- 禿堂
- 792 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:16:16 ]
- cmd>con
だと出力が変 cmd|cat32.exe>con だと正常 なぜ? cat32.exeはsfuのを使ったけど、標準のコマンドでこういうのはない? moreはラインバッファリングで駄目
- 793 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:43:05 ]
- >792
パソコンの操作方法の質問はスレ違い以前に板違い ここはプログラムを作る人の板です
- 794 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:43:45 ]
- PC初心者
pc11.2ch.net/pcqa/ Windows pc11.2ch.net/win/
- 795 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:14:07 ]
- >>793-794はスルーします
- 796 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:18:03 ]
- >>793
あなたはどうして頭が悪いの?
- 797 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:31:16 ]
- プログラム系の板は本当の基地外が高確率で沸くから困る
- 798 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:28:47 ]
- >>793
昔のPC bubble6.2ch.net/i4004/
- 799 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:39:22 ]
- PC初心者板の回答者に答えられるのか疑問だな
- 800 名前:デフォルトの名無しさん [2007/12/01(土) 02:54:01 ]
- >>793-798
素直に「私には難しくて答えられません」って言えば?
- 801 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 05:17:54 ]
- >>797
もっとひどい板はいっぱいあるぞ ム板はかわいい方だよw
- 802 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:12:50 ]
- >>799
あそこの解答者はマジでエスパー能力者かと 超度いくつやねんと思う 中には答えられる奴も居ると思うぜ …でも板違い
- 803 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 18:17:36 ]
- dir hoge ←ディレクトリ
ディレクトリの中身が表示 ディレクトリ自身の情報はどうやって出すのでしょう?
- 804 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:11:09 ]
- dir | find "hoge"
- 805 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 22:55:24 ]
- またパソコンの使い方の質問だね
- 806 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:12:24 ]
- help dir
- 807 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:25:03 ]
- 吉外登場w
- 808 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:07:33 ]
- >>805
>>798 とか、UNIX板/Linux板でならそう言えるな。 それが基本的な使い方だし。(そのLinux板でも基本GUIの比率上がってきてるけどな) だがWinやMacではもはやコマンドライン自体 基本的な使い方から外れた機能だ。 >>806 dir 単品で出来るオプションあったっけ? 手元の Win2k だと見当たらなかった。
- 809 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:09:57 ]
- ディレクトリ自身の情報というのがそもそもよくわからない
- 810 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:31:01 ]
- dir hoge.* /ad
- 811 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:33:59 ]
- 基本的な使い方かどうか以前にプログラミングの話じゃないから板違い
続きはこっちでやればいいよ↓ ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/
- 812 名前:デフォルトの名無しさん [2007/12/04(火) 19:36:28 ]
- DIR unko.txt とすると
2007/11/20 19:14 29 unko.txt 1 個のファイル 29 バイト みたいに表示される。 ところが、ディレクトリだと DIR manco とやっても 2007/11/20 19:13 <DIR> manco とは出ない。(ディレクトリの中身が表示されてしまう) インチキでよければこういう方法ならある。 FOR %%I IN (manco) DO ECHO %%~tI %%I もしくは CALL :mydir manco GOTO :EOF :mydir ECHO %~t1 %1 EXIT /B
- 813 名前:デフォルトの名無しさん [2007/12/04(火) 19:38:15 ]
- >>810
その方法だと、hoge.bak みたいなディレクトリまで表示されてしまう。
- 814 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 20:28:50 ]
- >>734
vbscriptではできない?
- 815 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 22:05:56 ]
- 既知害の誘導は狼少年のようなものですね
- 816 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 15:42:29 ]
- どういうこと?
煽りとかでなく素で意味が解らない。
- 817 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 16:03:05 ]
- XPのExplorerで、FDを挿入せずにアクセスすると待機状態(挿入したら開く状態)になるんだけど
あれって出来ないかな? 「FD挿入したら何かキーを押して…」 の部分を 「挿入待ち」とかに出来たら簡素で良いんだけども
- 818 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 16:45:11 ]
- できない
- 819 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:58:07 ]
- >>816
このスレで絶えず他のスレに誘導しようとする奴の おかしさが分かれば意味が分かるはずなのだが。 狼少年 ja.wikipedia.org/wiki/%E5%98%98%E3%82%92%E3%81%A4%E3%81%8F%E5%AD%90%E4%BE%9B
- 820 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 20:34:40 ]
- >>817
dll書き換え
- 821 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 20:59:05 ]
- ドライブにメディア挿入を検知する機能が無いんだから無理だろ
CDなら何とかなるけど…
- 822 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:24:05 ]
- set /p A="数値入力してください"
set /p B="数値を入力してください" for %%C in (????)do echo %%C このときA〜Bの数値を出力をするにはどのようにしたらいいのでしょうか? Aに18 Bに21 が入力されると 18 19 20 21 と出力されるようにしたいと思っています
- 823 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:30:32 ]
- ※なんでも無理矢理バッチでやろうとせずWSH等の使用も
検討しましょう。
- 824 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:36:11 ]
- 出力させるだけなら
@echo off setlocal set /p A="数値入力してください" set /p B="数値を入力してください" :loop echo %A% if "%A%"=="%B%" goto :eof set /a A+=1 goto loop
- 825 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:40:04 ]
- 自己解決しました
for /L %%C in (%A%,1,%B%)do echo %%C このようにすることでできました
- 826 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:42:41 ]
- cmd.exeのforって意外と機能があるよね
- 827 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:43:46 ]
- >>823
既存のbatに修正を加えたかったので、できたらbatで実現したかったため無理やりやってしまいました (WSHをまったく知らないっていうこともあります・・・ >>824 加算してイコールという判定もありましたね batで+=使えることも知りませんでした
- 828 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:44:50 ]
- >>826
すんげーややこしいので、いつもWSH使っちゃうよ。
- 829 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:49:16 ]
- >>828
そのややこしいのをリファレンス見ないで書ける人は凄いと思う
- 830 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:59:33 ]
- 凄いとは思うが、あの覚えにくい物をマスターするなら、
他のスクリプト言語を学んだ方がマシという結論に達した・・・・・
|

|