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/
111 名前:デフォルトの名無しさん mailto:sage [2011/03/15(火) 23:48:08.15 ] そうですねw
112 名前:デフォルトの名無しさん mailto:sage [2011/03/16(水) 01:49:08.39 ] おまえ誰?
113 名前:デフォルトの名無しさん mailto:sage [2011/03/16(水) 09:27:16.44 ] \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ た わ し で す -‐ ー __ __VV >:::::::::::::::::::: < _>':::::::: ::::::::< ,>'::::: ::::::::< >::::::: :::::::::< >;;::::: :::::::< >i::::::::::::::ゞ< 'ヘトハト! ‐- / / ヽ \ / 丶 \ / / / | i, 丶 \ / / / | i, 丶 \
114 名前:デフォルトの名無しさん mailto:sage [2011/03/16(水) 10:57:44.78 ] なんか面白いネタを頼む。愚痴は要らん
115 名前:デフォルトの名無しさん [2011/03/16(水) 23:32:55.60 ] 標準出力や、標準エラーを初期化する方法ってあります? 初期化って概念が、そもそも無いかもしれないですが。
116 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 01:18:24.11 ] >標準出力 2>標準エラー
117 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 15:43:02.49 ] >>115 初期化しないと生ずる不具合を教えてください 具体的にお願いします
118 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 16:58:13.74 ] 追加になります。
119 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 20:10:10.61 ] で、溜まったまま出てこないの? 便秘かよw
120 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 20:36:18.44 ] Cでfflush(stdout)するようなもん? 違うか
121 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 22:02:21.39 ] それ初期化っていうかよ
122 名前:デフォルトの名無しさん mailto:sage [2011/03/17(木) 22:02:55.98 ] ファイナライズとか?
123 名前:デフォルトの名無しさん mailto:sae [2011/03/18(金) 00:05:53.42 ] closeだっちゃ
124 名前:デフォルトの名無しさん mailto:sage [2011/03/18(金) 22:45:57.66 ] 他スレから誘導されて参りました。 環境は Windows XP Service Pack 3 です。 sample.batという名のバッチファイルを作って、その挙動を 1.commandstring = "C:\sample_prgm.exe" のようにcommandstringという変数に右辺の文字列を代入する。 (バッチファイル中に直接書きこむ) 2.commandstringが有効なパスであるならば そのパスをコマンドとして(関連付けどおりに)実行させる。 (つまりコマンドプロンプトにcommandstringの中身を打ち込んだのと同じ動作をさせる) というふうにしたいのですが、どう書けばよろしいでしょうか? Pythonで言うなら ####################### import os, os.path commandstring = "C:\sample_prgm.exe" if os.path.exists(commandstring) : os.system(commandstring) ####################### です。 これをbatファイルでやりたいのです。 よろしくお願いいたします。
125 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 00:14:09.04 ] set commandstring=C:\sample_prgm.exe if exist %commandstring% %commandstring%
126 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 00:40:25.87 ] この手の方がパスにスペースを含むような使い方をするとはあんまり思わないけど スペースぐらいはケアした方が良いような・・・
127 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 00:42:01.80 ] クレクレマンにそんなに親切に対応する必要なし。
128 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 11:10:36.49 ] 質問があります お聞きしたいことはバッチファイルで出力されたログを上手く取るコツです 今はこのように非効率だとおもいながらもバッチファイルで標準出力やエラー出力をlog.txtに追加しています (このteeはここではパイプで渡された入力をファイルに追記するために使っています) ( NanikaSuruA.exe 2>&1) | tee -a log.txt ( NanikaSuruB.exe 2>&1) | tee -a log.txt 以下続く ただこの方法ではコマンドごとに記述することが手間と 標準出力を利用したいときにエラーが記録しづらく困っています。 例えば TokubetuNaNanika.exe > output.txt TokubetuNaNanika.exe は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 このようなときにパスが通っていないエラーが記録されていませんでした このときはrun_test.batを作りその中で処理したいbatを呼び出し表示されるものをログに追記するとよさそうに見えますが 一つのバッチファイルのにつき、さらにもう一つのログをとるためのラッパーのためのバッチファイルを用意することになります test.bat | tee -a log.txt もう少しいい方法はないかと質問させていただきました
129 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 11:40:36.48 ] NanikaSuruA.exe >> log.txt 2>&1 TokubetuNaNanika.exe > output.txt 2>> log.txt
130 名前:124 mailto:sage [2011/03/19(土) 14:34:32.99 ] >>125 ありがとうございます! >>126 今後スペースが必要となったらその時自分で勉強して手を加えようとおもいます! ありがとうございました。
131 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 15:56:21.84 ] >>128 再帰 if defined flag goto main setlocal set flag=1 %0 2>&1 | tee -a log.txt goto :eof :main
132 名前:デフォルトの名無しさん mailto:sage [2011/03/19(土) 18:57:36.42 ] >>128 ラッパー(test.bat)の中身 NanikaSuruA.exe NanikaSuruB.exe TokubetuNaNanika.exe > output.txt ラッパーの実行方法 test.bat 2>&1 | tee -a log.txt
133 名前:128 mailto:sage [2011/03/20(日) 15:35:57.84 ] ありがとうございます! teeというコマンドを使っていたのはファイルと画面にも表示したいのをさっぱり忘れていました リダイレクトの方法>>129 も含めて試してみます >>129 なるほど、、 自己再帰する手があるのですね >>132 用意する手間さえどうにかすればラッパーが一番楽そうですね
134 名前:デフォルトの名無しさん [2011/03/23(水) 11:49:37.29 ] start /B "C:\Program Files\R\R-2.11.1-x64\bin\Rgui.exe" %* という内容のバッチファイルを書いて実行すると、期待したどうさに ならずに、コマンドプロンプトのロゴが出てしまいます。 解決策をご教示ください。 よろしくお願いします。
135 名前:デフォルトの名無しさん mailto:sage [2011/03/23(水) 12:20:56.26 ] お前が期待している動作ってのは何だよ
136 名前:デフォルトの名無しさん mailto:sage [2011/03/23(水) 16:49:02.50 ] start "title" "C:\Program Files\R\R-2.11.1-x64\bin\Rgui.exe" %* /Bなんか使うな必要ないだろ
137 名前:デフォルトの名無しさん mailto:sage [2011/03/23(水) 20:44:39.82 ] >>135 無理すんなw
138 名前:デフォルトの名無しさん [2011/03/23(水) 21:33:06.74 ] >>136 ありがとうございます。startの引数を誤解していました。
139 名前:デフォルトの名無しさん mailto:sage [2011/03/23(水) 21:47:00.23 ] そもそもstart使う意味あんの?
140 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 00:51:32.62 ] バッチが止まるだろw
141 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 00:52:53.55 ] そんなのイロハだろ?
142 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 02:37:09.20 ] アロハだよ
143 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 10:43:40.20 ] >>140 最初/bを使ってた時の問題がロゴが出る事だけだったんなら 止まることは何の問題にもなってなかったんじゃ?
144 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 13:13:54.96 ] 頭悪いの?
145 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 14:07:08.91 ] >>144 わからんから説明してくれよ
146 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 14:14:35.95 ] >コマンドプロンプトのロゴが出てしまいます。 コマンドプロンプトが出てしまいます。
147 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 15:27:19.69 ] わからんちゅうのはなにがわからんのかなぜわからのかわからんからなw
148 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 19:12:04.02 ] 日本語に不自由してるみたいだな
149 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 20:38:56.65 ] んが1つ足りないようだな
150 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 21:07:30.89 ] うんん
151 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 21:08:50.98 ] vbsからbatをプロンプト非表示で起動したい しかし このようにお願いします ファイルの場所 rscript\c1.vbs ↑実行ファイル rscript\tool\aw1.bat ↑vbsから実行されるbatファイル
152 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 21:26:23.29 ] >>151 プロンプトを非表示でbatを実行するためのvbsって微妙にスレチな気も… c1.vbs WScript.CreateObject("WScript.Shell").Run "tool\aw1.bat", 0
153 名前:デフォルトの名無しさん [2011/03/25(金) 01:41:16.90 ] キー操作のCTRL+Zを自動入力させたいのですが、set /p input=0x1aとやってもうまくいきません。 どうすればうまくいくかご教授お願い致します。環境はWindowsXP SP3です。
154 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 01:54:56.01 ] できません
155 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 05:47:40.05 ] >>153 別プロセスのVBS立ち上げてSendKeys使えばOK
156 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 18:23:54.67 ] >>154 あほにはできないw
157 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 21:00:47.16 ] なにがやりたいのか?
158 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 07:56:35.56 ] >>153 その1バイト分の0x1aをバイナリエディタで入力して 適当なファイル名で保存し、入力リダイレクトに使うってのはどう?
159 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 11:59:31.16 ] ロジクールSetPoint.exeの再起動をbat or vbsで行いたいです taskkillでプログラムを終了→プログラムを起動 との事ですが全くわかりません…良ければご教示お願い致します
160 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 14:39:28.04 ] vbsならtaskkill使う必要ないけどね まぁスレ違いだけど
161 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 16:06:06.56 ] >>153 ttp://scripting.cocolog-nifty.com/blog/2008/11/post-45b1.html
162 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 16:08:00.90 ] >>159 @echo off taskkill /im SetPoint.exe start SetPoint.exe
163 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 18:33:29.39 ] CTRL+Z はどうした
164 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 19:22:33.87 ] >>162 ありがとうございます ですがすいません終了しなかったり終了しても再起動してくれないことが多いですorz
165 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 19:29:55.33 ] 終了の待ち合わせが必要なんじゃね? あいだに sleep 10 か ping -n 10 localhost 入れてみ
166 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 19:45:49.77 ] >>165 ありがとうございます ですが言う事聞きません… 再起動の方はディレイかければいけそうです 1/30回しか正常に動作してませんので検証不足ですがorz
167 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 19:47:44.88 ] 話から別物だとはわかっちゃいるけどファイル名に懐かしいものを思い出したw about-threats.trendmicro.com/ArchiveMalware.aspx?language=jp&name=WORM_RBOT.BNV
168 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 20:02:31.70 ] @echo off taskkill /im SetPoint.exe ping -n 10 localhost taskkill /f /im SetPoint.exe start SetPoint.exe
169 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 20:08:54.36 ] timeoutなんていうコマンドの存在をつい最近知った俺… 2000の時からあるなんて知らなかったorz
170 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 20:09:50.35 ] >>168 ありがとうございます /f付けとくといけるみたいですがタスクトレイにアイコンが残ってしまいます 強制終了以外に何かいい案ないでしょうか あと待ち時間は sleep 10 ping -n 10 localhost 以外にありますか?
171 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 20:21:29.55 ] waitfor signal /t 10 timeout /t 10
172 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 22:02:18.81 ] >>171 ありがとうございます 色々ググッたんですがトレイにアイコン残るのは仕様みたいですね これで使わせてもらいます ご回答いただいた皆様ありがとうございました
173 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 12:31:03.80 ] XCOPY V:\ts\*.mp4 "\\nas\contents" /D /M 録画機から自動エンコしたファイルをこのバッチからNASに飛ばすようにしてるんですが どうしても同名ファイルがあるとyes/noで止まったままなんです これをスキップして処理を継続することは出来ないのでしょうか
174 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 12:36:41.33 ] help見ただけだけど、replace /aかな?
175 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 12:38:13.43 ] /y スイッチ
176 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 15:05:20.53 ] /yはスキップせずに上書きしちまうだろ。
177 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 15:08:14.78 ] yes n とかすりゃいいんじゃねーの
178 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 15:23:45.42 ] 送り先ファイルの存在確認してリネームして送る
179 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 15:39:10.83 ] yes/noで止まるのをスキップしたいのかと思ったんだが違うのか 古いファイルなんか残してどうすんの
180 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 16:37:33.49 ] ああ、スキップするって単純に送らないでそのファイルを飛ばすって意味だったんかな? だったら存在確認してリネームじゃなく単純に送らないだけだが。 ts\*.mp4って送り先からてっきり色々パラメータ変えてエンコした結果で 同名ファイルがあるものだと思ってたわ。 上書きしちゃ比較にならんからその線も除外してた。
181 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 17:48:00.25 ] robocopyは?
182 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 18:54:37.00 ] >>181 ここはそういう板じゃねーんだよ。ソフト板で頑張りな。
183 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 19:54:02.73 ] >>173-180 情報不足ですいません >>180 さんの言う通り 受け側の同名ファイルの中身は別物ですので、送り側のファイルに置き換わってしまっては困ります そこはスキップして後々手動でリネームする予定でした ですので bat実行 A.mp4←コピー済み B.mp4←コピー済み C.mp4(このファイルは転送先に既に同名ファイルが存在する、中身は別) 上書きyes/no選択肢が出て止まったまま D.mp4←このファイルはまだコピーされていない E.mp4←このファイルはまだコピーされていない このC.mp4の判断をスキップしたいのです 調べ限りバッチではどう記述していいかわかりませんでした
184 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 20:03:03.65 ] リネームしてからコピーしたほうが楽じゃね?
185 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 20:17:10.23 ] コピー前に xcopy source destination /d /a /u /l > list.txt でリネーム対称ファイル名を取得して for /f 文でリネームするとか。
186 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 20:59:05.72 ] copyhereなら勝手に(n)付けてくれる
187 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 21:00:09.52 ] >>186 小学生は早く寝ろ
188 名前:デフォルトの名無しさん mailto:sage [2011/03/27(日) 21:29:08.36 ] 自動エンコなら公衆便所掃ジャーだな
189 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 16:27:24.43 ] >>185 それ、/y スイッチを追加しないと途中で止まる コピー元の同名ファイルは、A属性を一時的にクリアすればコピーされない
190 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 16:40:20.06 ] rsyncつかえ
191 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:27:45.44 ] どっちにしろ自分でファイル名を変えなくちゃならん あとは copy でも何でもいいだろ
192 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:29:23.03 ] rsyncやcopyhereなら勝手に変えてくれるだろがw
193 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:38:36.30 ] >>190 =192 社会経験ゼロの厨房がw そんな物が使えれば誰も苦労せんわ、馬鹿が。
194 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:39:07.38 ] それでいいならな 似たような名前でわかりにくくなるだろ 結局、自分で変更することになるんじゃ?
195 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:41:30.81 ] >>194 は>>192 へのレスね
196 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 17:55:44.21 ] そんな物も使えん馬鹿が苦労してるわ。
197 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 18:47:54.29 ] 俺は>>193 じゃない。 質問者が使えるかどうかは知らん。
198 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 19:18:05.42 ] 公衆便所掃ジャーがよっぽど使える
199 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 19:23:17.00 ] なんか使いたくないソフト名だなw
200 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 22:22:58.43 ] >>196 使うことを禁じられてんだよ まともな会社で働いてから物言え糞ニート
201 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 22:30:09.14 ] 原発の作業員並みの環境だな ヘリコプターで水かけてたのはいったい何だったんだろう 馬鹿の指示で動く兵隊は大変だな
202 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 22:32:34.35 ] 【原発問題】 「この防護服で大丈夫?」 放射性物質広がり作業員不安 raicho.2ch.net/test/read.cgi/newsplus/1301313557/
203 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 22:34:22.73 ] お前みたいな馬鹿がいるから禁止してんだろw 会社も大変だなw
204 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 22:46:05.94 ] こういう社畜根性のバカばっかだから世の中がいつまでたってもまともになんないんだよな
205 名前:デフォルトの名無しさん mailto:sage [2011/03/28(月) 23:15:15.41 ] >>183 コピー先に日付のディレクトリ作って、そこにコピーすれば良いじゃん
206 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 00:10:15.73 ] つまらんから次どうぞ
207 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 01:30:24.01 ] 何でこのスレが常時伸びてるのか意味不明なんですが?
208 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 08:33:43.00 ] つまらんから次どうぞ
209 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 10:34:01.78 ] >>183 だから単純に for /f "delims=" %%i in ('dir /b/aa V:\ts\*.mp4') do if not exist "\\nas\contents\%%~nxi" xcopy "%%~i" "\\nas\contents\%%~nxi" /M こんなんでいいだろ。 俺だったら同名存在したら連番なり日付なり追加リネームしてコピーってのも バッチ内でやると思うけど。
210 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 10:51:17.00 ] dir使って不要なループを避けるならxcopyのコピー対象外(/h無し)の 隠し属性とシステム属性も除外して'dir /b/aa-h-s V:\ts\*.mp4'だな 逆にxcopyのオプションだけで対応するのなら、forの拡張機能は使わないな
211 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 11:34:28.35 ] もう質問者は見ていないだろw