- 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等の使用も 検討しましょう。
- 651 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 00:57:13 ]
- >>649
検索やググっても分からない奴に何を(ryw
- 652 名前:デフォルトの名無しさん [2007/10/28(日) 01:01:31 ]
- >>650
あ、ほんとだ。
- 653 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:57:02 ]
- 自分の気に入らない奴には「〜厨」と付けて
勝った気になるというか自分の方が正しい気になるやつって居るよね 例えば、タバコ嫌いな奴は喫煙家を喫煙厨とか吐煙厨とか言って蔑み 喫煙家はタバコ嫌いな奴を嫌煙厨などと言って罵る というわけで「〜厨」と呼ばれてる奴が、一方的におかしかったり 間違ってたりするわけではないというお話でした 「〜厨」と呼ばれる奴が悪いなら、「嫌誘導厨」と言われでも言い返す術は無くなるしw もちろん誘導を嫌ってる奴の方が悪いって訳でもないけど、過剰に反応しすぎて 正しい誘導まで目に入ってない傾向はある もっとも誘導する方もここの主旨の範疇まで誘導してる場合もあるからお互い様
- 654 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 02:01:45 ]
- 一方的におかしいから誘導厨と言われるんだろ
- 655 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 02:37:15 ]
- テキストファイルの先頭行を削除するにはどうすっぺ?
- 656 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 03:20:18 ]
- >>655
@echo off echo 1d > hoge.tmp echo e > hoge.tmp edlin hage.txt < hoge.tmp del hoge.tmp
- 657 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 03:31:42 ]
- @echo off
for /f "skip=1 tokens=1* delims=:" %%x in ('findstr /r /n "^" "FILENAME.TXT"') do echo.%%y
- 658 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 04:05:36 ]
- >>656
@goto a 1d e :a @edlin hage.txt < "%~f0"
- 659 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 09:02:21 ]
- unixのtailみたいなスマートな方法ないの?
もしかしてあんまり簡単にやってしまうとスレ違いになるから、無理に頭の悪い方法でやってる?
- 660 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 11:25:34 ]
- スマートにやりたい人はCygwinやGnuWin32を入れる方向で
- 661 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 14:40:01 ]
- for /f "skip=1 tokens=1* delims=:" %%x in ('findstr /r /n "^" "FILENAME.TXT"') do echo.%%y >"FILENAME.TXT"
空 for /f "skip=1 tokens=1* delims=:" %%x in ('findstr /r /n "^" "FILENAME.TXT"') do echo.%%y >>"FILENAME.TXT" 倍
- 662 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 14:43:06 ]
- >>661
当たり前だろ
- 663 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 19:51:39 ]
- ^Z
- 664 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:45:46 ]
- >>658
( echo 1d echo e )|edlin hage.txt だけど、^Zが付くんじゃなあ debugで削除するとか
- 665 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 22:09:58 ]
- バッチファイルを実行したときの標準出力への出力を全部
ログに残したいんですが、いい方法はないでしょうか? 「これを最初に書いておけば以降の出力は全部ログに残る」 みたいのがあれば一番いいんですが。
- 666 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 22:11:27 ]
- call :main > "%~0.log"
exit /b :main echo hello
- 667 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 09:12:17 ]
- >>666 ありがとうございます。
- 668 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 09:46:07 ]
- フォルダをドロップしたら中にあるファイルごとフォルダを削除してくれる
batファイルはありますでしょうか。
- 669 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 09:59:27 ]
- がんばって作るんだ。
- 670 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 10:04:36 ]
- デバッグどころか一度も実行していないが
if "%~1"=="" goto err cd /d "%~1" || cd /d "%~dp1" || goto err dir /w echo. echo "%cd%"のフォルダとファイルを削除します pause set folder=%cd% del *.* || goto err cd .. || goto err rmdir "%folder%" || goto err goto exit :err echo error pause :exit
- 671 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 10:13:22 ]
- エクスプローラでドロップするんならエクスプローラで削除すれば簡単なのに
- 672 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 10:17:12 ]
- >>669-670ありがとうどざいました。
>671DOSで削除した方がHDDにやさしいような気がしたもので。
- 673 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 10:22:19 ]
- ( ゚д゚)ポカーン
- 674 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 10:33:18 ]
- そしてうっかり間違ったフォルダを消して涙目の>>668
- 675 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:53:42 ]
- 大量に消すときはrd /s/qだな
- 676 名前:デフォルトの名無しさん [2007/10/29(月) 16:21:35 ]
- ご助言お願いします。
test.txtという3行のファイルがあり、 その中身は以下のようになっています。 あかさたな 123456 ABCDEFG 1行の内容を1つの変数に格納したいのですが、 どのようにすればよいでしょうか。 FOR文を色々書いてみましたが、どうしても1行目しか 変数に入れられませんでした。
- 677 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 16:27:06 ]
- 初心者向きのスレはこっち↓
ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/
- 678 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 18:33:23 ]
- (
set /p a= set /p b= set /p c= )<test.txt set d=%a% %b% %c%
- 679 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 18:40:48 ]
- >>676
@echo off for /f "tokens=1* delims=:" %%I in ('findstr /n /r "^" test.txt') do set AAA[%%I]=%%J set AAA[ >>677 前スレであぼーんされたの忘れたの? アク禁されないように気をつけろよ。
- 680 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 19:13:28 ]
- やっぱスレ違いの質問に答えるやつはレベル低いな
- 681 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 19:30:29 ]
- 初心者でもこのスレでOKですよ。
スレ違いの質問に見えているとしたら頭が悪いのです。
- 682 名前:デフォルトの名無しさん [2007/10/29(月) 19:31:08 ]
- ヤター!チャンス!
さっそく使わせてもらいます。 >>680 誘導厨は帰れ!自分の巣へ帰れ!37度線よりこっちに来るな!
- 683 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 19:31:27 ]
- >>681
いい加減ウザいんだが。自演じゃないなら自粛してくれ。
- 684 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 19:36:06 ]
- >>682
誘導厨はリアル人格障害のようだからレスするだけ無駄っぽいですよ。
- 685 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 19:41:26 ]
- >>682
全然関係ないけど、37じゃなくて38だろと。
- 686 名前:デフォルトの名無しさん [2007/10/31(水) 20:21:53 ]
- マシンAのバッチファイルから、マシンBにあるバッチファイルを実行する方法はないでしょうか。
1,マシンAのバッチファイルで、マシンBに対して何らかの通信を行うプログラムを実行 2,マシンBはAからの通信を受けてバッチ実行 というような感じになるのかなと思うのですが、こういう事は可能でしょうか。
- 687 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 20:22:41 ]
- つ[rsh]
- 688 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 20:31:01 ]
- つWshRemote
- 689 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 20:54:18 ]
- パソコンの使い方
- 690 名前:686 mailto:sage [2007/10/31(水) 20:57:14 ]
- 大事なことを書き忘れていました。
マシンA、BともにWiindows2000です。 >687 せっかく教えていただいたのに済みません。 Windows2000なのです。 >688 なるほど、WSHですか。 使ったことなかったですが、今回の目的程度であれば ググッたサイトで見つけたサンプルを改変すればできそうな気がしてきました。 あした試してみます。ありがとうございます。
- 691 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:02:44 ]
- >>689
パソコンの使い方は pc11.2ch.net/pcqa/ で訊いてくださいね
- 692 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 22:03:55 ]
- つWMI Win32_Process.Create
- 693 名前:687 mailto:sage [2007/11/01(木) 04:14:14 ]
- >>690
大変恐縮ですが、Win2kにもrsh.exeというものがありましてね。 調べもしないで戯けたこと抜かすんじゃねぇ。
- 694 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 12:59:37 ]
- rshdがないんじゃないの?
- 695 名前:デフォルトの名無しさん [2007/11/01(木) 14:24:48 ]
- ( ´,_ゝ`)プッ
- 696 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:46:44 ]
- 渡ってきた引数がパスなのですが
それがディレクトリかファイル化を判断したいのですが、どうすればよろしいでしょうか。
- 697 名前:デフォルトの名無しさん [2007/11/01(木) 20:15:47 ]
- SET UNKO=C:\WINDOWS
IF EXIST "%UNKO%\*.*" ECHO ディレクトリだよ〜〜ん IF NOT EXIST "%UNKO%\*.*" ECHO たぶんファイルだよ〜〜ん
- 698 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:10:43 ]
- レベルの低い質問にお粗末過ぎる回答
ここプログラム板だよね
- 699 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:25:03 ]
- pushd %1
if errorlevel 1 echo not folder
- 700 名前:デフォルトの名無しさん [2007/11/01(木) 23:00:10 ]
- >>698
何一つ質問に答えられないで、文句だけ書いていくおまいさんより、よっぽど建設的だと思うぞ。
- 701 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:20:29 ]
- if exist %1 if not exist %1\nul (
echo file ) else ( echo directory )
- 702 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:22:49 ]
- test -d %1 && echo dir || echo file
- 703 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:27:01 ]
- echo n | del /F %1 >NUL 2>&1
if errorlevel 1 (echo '%1' is a directory.) else echo '%1' was a file.
- 704 名前:デフォルトの名無しさん [2007/11/02(金) 00:48:16 ]
- 次の条件でバッチファイルを作成してください
・フォルダ内にある複数のファイルを結合し一つにする ・結合してできたファイル名は自由 ・結合されたファイルは削除される ・フォルダ内にファイルがない場合はエラーメッセージを出力し処理を終了 よろしくお願いします。
- 705 名前:686 mailto:sage [2007/11/02(金) 02:30:34 ]
- >>693
すみませんでした。 「rsh windows」でググったら、一番上に出てきたMicrosoftのサイトに Win2000ではrshは無いって書いてあったんで、そうなんだとばかり・・・。 SFUってのをインストールしたら2000でもいけるっぽいですね。 また明日試してみます。 ありがとうございました。
- 706 名前:デフォルトの名無しさん [2007/11/02(金) 11:51:18 ]
- >>701-703
市ね
- 707 名前:デフォルトの名無しさん [2007/11/02(金) 12:08:22 ]
- >>699
それ、カレントディレクトリが変更されてしまうという副作用があるので美しくない。 あと、ネットワークだと勝手にZドライブが割り当てられてしまうんだよね。 これを良しとするかダメとするかは人それぞれだろうけど。
- 708 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 14:32:05 ]
- pushd %1 && popd
- 709 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 14:37:27 ]
- echo %~a1
- 710 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 01:29:20 ]
- 参考スレ(誘導厨に関して)
軽度発達障害者に迷惑してる生活part2 life8.2ch.net/test/read.cgi/kankon/1194103268/ ★☆☆ アスペルガーだけどプログラマ pc11.2ch.net/test/read.cgi/prog/1174990403/
- 711 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 06:23:12 ]
- .batと.cmd以外の拡張子もバッチファイルとして、
ダブルクリックで起動できませんか?
- 712 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 09:04:22 ]
- >711
パソコンやOSの使い方の質問は板違い PC初心者 pc11.2ch.net/pcqa/ Windows pc11.2ch.net/win/
- 713 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 15:52:02 ]
- .extの@値をbatfileにすればよい
- 714 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 20:08:43 ]
- >>712
人格障害者のあなたは life8.2ch.net/utu/ に行って下さい。
- 715 名前:デフォルトの名無しさん [2007/11/07(水) 23:45:56 ]
- >>712
市ね。いや氏ね。むしろ誌ね。っていうか、詩ね。だが結局、士ね。
- 716 名前:711 mailto:sage [2007/11/08(木) 02:26:00 ]
- >>713
ダメでした。 ダブルクリックすると、 「c:\hogehoge\hoge.cam は有効な Win32 アプリケーションではありません。」 と出ました。 フォルダオプションのファイルの種類で、.camを見ると、 「アクションを実行するアプリケーションは」 "%1" %* となっていました。
- 717 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 04:43:47 ]
- フォルダオプションでなくregeditでレジストリを見てください
- 718 名前:711 mailto:sage [2007/11/08(木) 08:03:06 ]
- regeditを使って .camの@値をbatfileにしましたけど駄目です。
- 719 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 08:14:27 ]
- %SystemRoot%\System32\cmd.exe /c %1って具合に関連付けすればいいんじゃないの?
- 720 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 08:15:32 ]
- ああごめん、cmd.exeがバッチファイルとして見なしてくれなさそうな気がする。駄目だなきっと。
- 721 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 09:07:18 ]
- @="%1" %*
こうだべ
- 722 名前:デフォルトの名無しさん [2007/11/08(木) 10:39:00 ]
- すいません教えて下さい
パソコンの音量を下げるにはどうしたらいいんでしょうか Windows XPです
- 723 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 11:59:12 ]
- >722
Windowsの使い方は板違い PC初心者 pc11.2ch.net/pcqa/ Windows pc11.2ch.net/win/
- 724 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 14:02:04 ]
- 自演乙
- 725 名前:デフォルトの名無しさん [2007/11/08(木) 14:39:32 ]
- >>722
google [ 窓の杜 音量 ]
- 726 名前:デフォルトの名無しさん [2007/11/08(木) 14:41:05 ]
- >>723
しね
- 727 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 20:38:56 ]
- >>721
どうなるの?
- 728 名前:711 mailto:sage [2007/11/08(木) 22:25:29 ]
- >>719は
「アクセスが拒否されました。」 と出ました。 >>721 試してみます。
- 729 名前:デフォルトの名無しさん [2007/11/08(木) 23:09:12 ]
- 無駄無駄。もし、そんな事ができてしまったら、セキュリティ・ホールになるやろ?
素直に拡張子 bat か cmd にしておけ。
- 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 だった
|

|