1 名前:デフォルトの名無しさん [2006/05/25(木) 00:45:55 ] 前スレ バッチファイルプログラミング 2.bat pc8.2ch.net/test/read.cgi/tech/1104911889/ 関連スレ 初心者〜管理者まで必読!コマンドライン(DOS Pt.4) pc8.2ch.net/test/read.cgi/win/1116131036/ MS-DOS・Win3.1総合スレッド pc8.2ch.net/test/read.cgi/win/1025462258/ WSH(・∀・)スレッド! pc8.2ch.net/test/read.cgi/tech/1055075469/ バッチファイルプログラミングとは・・・・ ・ファイル拡張子が ".bat" ・複数のコマンドを使い、実行させるバッチファイルを作る を満たせばOK!
82 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 10:39:36 ] set "DATE^=bbb" とすれば echo ^%DATE^% は置換されます。 %^DATE%や%^D^A^T^E^%なども置換されにくい。 逆に SET p=% echo %p%DATE%p% なんてやると大丈夫みたい。
83 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
84 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 11:31:20 ] コマンドプロンプトも ( echo echo hoge echo exit )|cmd とやればコマンドスクリプト!
85 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 15:02:57 ] ""で括る場合は、 ECHO "%^DATE%" とすると、^が"でエスケープされて、 "%^DATE%" となるので、 ECHO ^"%^DATE%" のように、奇数番目の"の前に^を付けます。 以降の^が"でエスケープされなくなります。
86 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 16:56:14 ] 訂正 >ECHO ^"%^DATE%" >のように、奇数番目の"の前に^を付けます。 >以降の^が"でエスケープされなくなります。 ECHO ^"%^DATE%^" ^"〜^"で^がエスケープされなくなります。
87 名前:デフォルトの名無しさん [2006/11/15(水) 00:10:13 ] バッチファイルで起動しているアプリケーションの プロセス名を取得するにはどのようにすれば良いでしょうか?
88 名前:87 mailto:sage [2006/11/15(水) 00:12:51 ] osはWINDOWS2000とXPになります よろしくお願いします
89 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 00:18:13 ] >>87 MEM
90 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
91 名前:デフォルトの名無しさん [2006/11/15(水) 12:14:00 ] バッチファイルを使用して同じLANネットワークに接続されている 別のPCでDOSコマンドを実行したいと思っています。 どのようなコマンドで実現出来ますでしょうか? OSはwindows2000になります。ご教授ください<(_ _)>
92 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 12:20:41 ] バッチからDOSコマンド呼ぶだけじゃプログラミングとは呼ばない。
93 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
94 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 14:02:25 ] >>87 2k tlist.exe xp tasklist.exe
95 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 14:10:31 ] 初心者〜管理者まで必読!コマンドライン(DOS Pt.5) pc8.2ch.net/test/read.cgi/win/1152544955/108 >xcopyのコマンドでコピー先に既にあるファイルはコピーしない とするにはどうしたらいいでしょうか? 使用法: FindNotExistsCp.CMD コピー元ディレクトリ コピー先ディレクトリ @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR %%0 IN (%1) DO ( FOR /R %1 %%1 IN (*) DO ( SET x=%%~f1 SET x=!x:%%~f0=%2! IF NOT EXIST "!x!" ( IF NOT EXIST "!x!\..\*" ( echo MD "!x!\.." ) echo COPY "%%~f1" "!x!" ) ) )
96 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 14:34:11 ] 誤爆?
97 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 15:50:19 ] いや、バッチファイルプログラミングの話だからこっちかなと。
98 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 16:35:45 ] バッチ内で SET hoge=%hoge:a=b% ってやると、hogeがないとき、 hoge=a=b になります。変な仕様?
99 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 17:12:40 ] 動作はOSによって違ったりするし、そう動いたのならそういう仕様
100 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 17:20:40 ] その辺はOSの仕様の話だからここへ ↓ Windows pc8.2ch.net/win/
101 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 20:10:15 ] 何だか必死な人がいるねw
102 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 02:21:52 ] どうせなら、記事の中身に注力してほしいな。
103 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 19:46:18 ] あっちは下品でやーだ。
104 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 23:11:09 ] FDのBATファイル作成で、TXTファイルをCドライブの 任意のフォルダにコピーしたいのですが、 copy /y test.txt C:\Downloads\test.txt だと、Downloadsファイルにコピーされるのですが、 copy /y test.txt C:\Documents and Settings\test.txt だと、「コマンドの構文が誤っています。」というエラーが 返ってきます。スペースの部分に%を入れたりしてみたのですが、 うまくいきません。 対処法をご存知の方、お知恵をお貸し頂けませんでしょうか。
105 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 23:18:34 ] ダブルクオーテーションで括れ
106 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 23:35:10 ] >105 できました!! ありがとうございます!!
107 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
108 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 14:40:13 ] はいはい
109 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 19:24:36 ] > pc8.2ch.net/test/read.cgi/win/1152544955/558 ローマ字覚えたてのもんで、こっちに来ました。 rem setlocal set /p random=加える数を入力してください set /a hoge+=random set random= rem setlocal set /p cd=ディレクトリを入力してください cd /d %cd% set cd=
110 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 19:35:03 ] あっちいけ
111 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 22:18:42 ] はいはい
112 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 19:39:47 ] 逆に、他人に使われるバッチ内で%CD%や%RANDOM%を使うときは、 念のため環境変数を削除してから使うようにしたほうがいいですね。
113 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 19:46:42 ] > pc8.2ch.net/test/read.cgi/win/1152544955/572 バッチで、標準入出力がコンソールかどうか区別する方法ってあります?
114 名前:デフォルトの名無しさん [2006/12/15(金) 00:07:16 ] ageで失礼します。 %TEST1% のような変数の"1"の部分を別途変数にして表現させたいのですが 可能でしょうか? SET TEST1=AAA SET CNT=1 この後、%CNT%を使って%TEST1%の値AAAを表示させたいのですが。。 分かりづらくて申し訳ないです。
115 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 00:22:01 ] MS-DOS ver4 以降のみですが・・・ echo echo %%TEST%CNT%%%>aaa.bat call aaa.bat
116 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 00:28:13 ] >>115 さん ありがとうございます。 試してみたのですが、できませんでした。。 結果 %TEST1% となってしまいます。 当方、XPです。
117 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 00:45:55 ] >>116 %TEST1% という文字列が出力できるなら それを新しいbatに書き込んで実行するだけだからもう一息だね! 互換性を犠牲wにしてもいいなら遅延環境変数の展開を有効にした方が簡単だけどね。 setlocal enabledelayedexpansion echo !TEST%CNT%!
118 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 00:57:36 ] >>117 さん 中間ファイルを作らずに実行するには setlocalしかないですかね。。?
119 名前:114,116,118 mailto:sage [2006/12/15(金) 01:01:37 ] 一応、中間ファイルを作成して実行できました! できれば中間ファイルを挟まずに実行したいのですが、 setlocal 〜 でうまく出ませんでした。なぜだろう。。
120 名前:114,116,118 mailto:sage [2006/12/15(金) 01:11:39 ] すみません。 echo | echo %test%cnt%% でいけました。 色々と教えてくれた方、ありがとうございます。 お騒がせしました。
121 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 02:08:57 ] call echo %%test%cnt%%%
122 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 14:26:54 ] パイプの右側はサブプロセスで実行されるので、 echo | set hoge=%%test%cnt%%% とやっても、現プロセスで受け取れませんが、 call set hoge=%%test%cnt%%% ならok
123 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 14:34:49 ] ここは本スレへ誘導するためのスレです。 ↓↓ ↓本スレはWindows板にあります↓↓ ↓ 初心者〜管理者まで必読!コマンドライン(DOS Pt.5) pc8.2ch.net/test/read.cgi/win/1152544955/
124 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 14:48:49 ] >>117 >遅延環境変数の展開 →環境変数の遅延展開(delayed expansion)
125 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 15:04:06 ] call :sub echo %%TEST%CNT%%% goto :eof :sub %*
126 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 16:14:57 ] プログラミングじゃなくてOSの仕様の話だな
127 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 18:13:50 ] cmd /c echo %%TEST%CNT%%% お手を煩わせるのはなんなので 123 :デフォルトの名無しさん :2006/12/15(金) 14:34:49 ここは本スレへ誘導するためのスレです。 ↓↓ ↓本スレはWindows板にあります↓↓ ↓ 初心者〜管理者まで必読!コマンドライン(DOS Pt.5) pc8.2ch.net/test/read.cgi/win/1152544955/
128 名前:デフォルトの名無しさん [2006/12/15(金) 20:27:09 ] NGワード:初心者〜管理者まで NGワード2:必読!コマンドライン