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/
263 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 01:56:31.10 ] だまれデブ
264 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 01:57:21.57 ] 禿げてないけどぼけ
265 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 01:58:06.19 ] デブでないけどぼけ
266 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 01:59:25.93 ] ユニコード特有の文字って何だよぼけ
267 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:00:31.99 ] >>266 ユニコード制御文字
268 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:02:30.29 ] ぐぐれカス
269 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:06:34.42 ] カスらっくだぼけ
270 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:09:27.91 ] UNCパス上のバッチファイル実行するとサポートしてない云々のメッセージが出るけど、 これってカレントが強制的に%WINDIR%にされてるのかね? > nul で抑制できないけど、取り合えずバッチは動いてるみたい 支障が出る or 出そうな状況ってありますか?
271 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:10:04.30 ] >>267 確かに。だが、ボケはユニコード制御文字のことを言ってるのか?
272 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 02:12:29.78 ] >>270 相対パス使ってると支障でるんじゃね? 取り合えずUNC使う時はpushdとpopd使うようにしてる。
273 名前:270 mailto:sage [2011/04/02(土) 03:00:19.58 ] >>272 なるほど<相対パス 今pushd/popdで試してみたら、やっぱ起動時のカレントは C:\Windowsになってた@Win7 バッチ内で何かの実行ファイルをキックするような内容程度なら、 全部絶対パスで渡してやれば特に問題ないのかな
274 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 05:30:09.48 ] >>258 仕様ってどういう仕様?
275 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 06:19:58.70 ] cmd /a
276 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 07:48:37.83 ] cmd /u で実行しても化けるよボケ
277 名前:デフォルトの名無しさん [2011/04/02(土) 08:09:08.88 ] 丂丄丅丌丒丟丣两丫丮丯
278 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 08:26:15.20 ] 上みたいな字が混じってると >>209 みたいなのが誤動作する可能性があるんだよボケ
279 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 08:46:12.84 ] 文字コードの話になると、すぐ>>256 みたいなガキが出てくるのなw
280 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 09:22:43.72 ] >>279 仕様だ。
281 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 12:48:13.93 ] >>278 もう古い時代のバッチに拘るな
282 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 16:20:37.26 ] >>281 拘ってるのは、知識もスキルもない窓際管理職と掃き溜め管理部門だけ
283 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 17:33:13.38 ] >>276 cmd /u で実行したら化けないとは言ってないよボケ /aと/uは出力を変えるだけだボケ 入力はa固定だボケ
284 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 17:35:32.15 ] >>278 >>277 はユニコード特有の文字か?ボケ
285 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 17:41:43.99 ] (厨)皆いい年こいたおっさんです
286 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 18:55:32.21 ] いい年こいてるからボケてるんだよボケ
287 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 19:40:44.78 ] 若年性もあるよボケ
288 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 17:50:43.52 ] あほぼけかすもユニコード特有の文字か?ボケ
289 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 17:59:29.90 ] 何言ってるか分からんよボケ
290 名前:デフォルトの名無しさん [2011/04/03(日) 18:14:08.41 ] C:\test.batというバッチファイルがあります。 『バッチファイルの内容』 ----------------ここから myprogram %1 ----------------ここまで myprogramというのは自作のプログラムです。」 このプログラムに引数を渡したいのですが、引数が「aaa bbb ccc」というふうに3つのキーワードを入れると、バッチファイルではaaaしか認識しません。 myprogram %1 %2 %3と書くことで取得できるのですが、引数に入れるキーワードの数は2個以上でいつも不規則な数になってます。 myprogram "%1"と書いても取得できませんでした どのようにして%1のみで全てを取得する事ができますでしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 18:25:59.37 ] >290 "%~f1" でOK。(ただしWindows95/98/Meでは不可)
292 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 18:33:29.11 ] >>291 何言ってるか分からんよボケ
293 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 18:35:37.02 ] %*でいいんじゃね
294 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 18:37:21.02 ] >>291 ありがとうございます;;大変助かりました
295 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 19:07:54.37 ] そんなわけねーよ
296 名前:デフォルトの名無しさん mailto:sage [2011/04/03(日) 19:23:07.99 ] 何でそんなわけねーんだよ?
297 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 10:38:51.40 ] 指定した文字から、指定した文字までを削除するバッチってどうやるんでしょうか? ai-1234_ueo.text 変換後 aiueo.text
298 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 12:55:20.48 ] 「-1234_」を抜くって意味なら set a=ai-1234_ueo.text echo %a:-1234_=% 「-」〜「_」までなら set a=ai-1234_ueo.text set b=%a:*-=% call echo %%a:-%b%=%%%%a:*_=%%
299 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 13:09:46.41 ] ありがとうございます。
300 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 21:47:14.35 ] 調べ方が悪いと思うんですが、解説サイトを見つけれ無かったので教えてください。 .batを並列で動かそうとしています。 例えば、 body.bat rem 動かない start “c:\a.bat“ start “c:\b.bat“ 上記なら動かない 下記なら動く body.bat rem 動く start ““ “c:\a.bat“ start ““ “c:\b.bat“ startの後のダブルクォーテーションが必要な理由を教えていただきたいです。 メンドクサイようでしたら、解説サイトを教えて頂けませんか。 宜しくお願いします。
301 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 22:06:00.22 ] >>300 start /?
302 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 22:10:23.82 ] こういうコマンドの使い方も知らずに適当な事やるやつってなんなんだろうね。
303 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 23:02:39.82 ] すぐに見つかったけど START ["タイトル"] [/Dパス] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [コマンド/プログラム] [パラメータ] タイトルは省略可能。ただし、プログラム名が空白を含む等で " " で囲まなければならない場合、 start "C:\Program Files\prog1\prog1.exe" と書くと、これがタイトルとみなさる。
304 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 23:37:03.23 ] それじゃだめだとちょっと前に言ったばっかりだろ
305 名前:デフォルトの名無しさん mailto:sage [2011/04/05(火) 22:25:31.81 ] >301-303さん 返事が遅くなりました。すいません、ありがとうございます。 start /? すいません、初歩でした。 上記を確認後に改めて、中身を確認すると、 a.batは、自作でtitleは書いていない。 b.batは、他人が書いたバッチでtitleを書いていました。 b.batは、タイトル書いているのに、 body.bat start ““ “c:/b.bat“ と書かないと動きませんでした。 この時のウインドウのタイトルを確認し忘れました。 ウインドウのタイトルがどうなってるのかは、明日、確認します。 start で設定するタイトル ““ とバッチ内で設定するtitleは、設定が違うのでしょうか? 相次ぐ質問で、申し訳御座いません。 お返事は、早くとも明日のこのぐらい時間か、明後日の朝になりますが、お付き合いお願いします。
306 名前:デフォルトの名無しさん mailto:sage [2011/04/05(火) 22:36:40.35 ] 壁に激突してください。
307 名前:デフォルトの名無しさん mailto:sage [2011/04/05(火) 23:00:48.68 ] 本当、一度死んだ方がいいよな。 タイトルそのものは全然関係無いってのに。
308 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 01:27:44.04 ] ひたすら丁寧口調で、自分の望む解凍を得るまで粘る、ってのがここ数年多いよね 気に入らない回答には罵倒して煽る、みたいなのがたくさんいた昔の方が 健全だったように思える
309 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 04:05:22.68 ] >お付き合いお願いします。 お断りします。
310 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 07:35:16.89 ] 検索で何となくたどり着き、Q&Aサイトか何かと勘違いしてるんだろう。 ここが何なのかも分からずに。
311 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 13:25:39.50 ] >>301-303 こういうコマンドの使い方も知らずに適当な事やるやつってなんなんだろうね。
312 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 13:57:29.48 ] >>305 ["タイトル"] [コマンド/プログラム] は位置パラメタなんだよ
313 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 14:07:28.74 ] >>311 ttp://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/start.shtml のライタ並だね 自称itpro
314 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 15:21:02.65 ] FreeDOS暦10年の俺からすると温い質問ばっかりで飽き飽きするぜ
315 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 16:02:48.17 ] >>314 | 釣れまっか? , \ ,/ヽ  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,/ ヽ ∧_∧ ∧∧ ,/ ヽ ( ´∀`) (゚Д゚,,),/ ヽ ( ) (| つ@ ヽ | | | ___ 〜| | ヽ (__)_) |――|. ∪∪ ヽ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ /⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~ ⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
316 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 20:22:13.46 ] ぼちぼちでんな
317 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 23:23:32.93 ] set /pで記号入力させて処理するの書いてるんだが %と&でバグるのはやっぱ防げないかね
318 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 00:00:35.47 ] 状況が不明だけどこういう違い? @echo off cls set /p asdgf= echo echo %asdgf% echo %asdgf% echo echo "%asdgf%" echo "%asdgf%" @echo on set asdgf=%asdgf:&=^^^&% @echo off echo echo %asdgf% echo %asdgf% echo echo "%asdgf%" echo "%asdgf%"
319 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 00:33:38.40 ] >>317 !の遅延展開を使えばええだがや
320 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 00:34:01.76 ] ちょっと違った ファイル名に%や&が入ってるときに それを取り込もうとしてエラー出てた。
321 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 01:15:03.79 ] @echo off for /F "delims=" %%f in ('dir /b *.txt') do call :main "%%f" goto :EOF :main set fname=%~n1 echo %fname% 取り込みファイル名:%abc.txx 結果:abc
322 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 02:15:02.22 ] >>321 !の遅延展開を使えばええだがや
323 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 03:08:33.98 ] start "タイトル" "コマンド/プログラム" でタイトル変えない方法ないの?
324 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 09:00:05.42 ] だからお前は壁に激突しろと
325 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 09:24:06.60 ] カレントディレクトリが表示されるだけだし start "%cd%"とかでいいんじゃねーの
326 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 09:53:33.10 ] >>322 遅延展開も試しが無理だったがや
327 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 10:18:30.88 ] %abc.txx
328 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 10:20:26.53 ] @echo off setlocal enabledelayedexpansion for /F "delims=" %%f in ('dir /b *.txt') do call :main "%%f" goto :EOF :main set fname=%~n1 echo !fname! endlocal これでもだめだった。 for do~のあとにset fnameとやればできるんだが do callで遅延展開でできないのは謎
329 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 10:21:03.65 ] >>327 誤字五時
330 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 11:24:10.03 ] んなこたぁ分かってるんだよ ちゃんと訂正しなよレス欲しいんなら @echo off setlocal enabledelayedexpansion for /F "delims=" %%f in ('dir /b *.txt') do ( set "a=%%f" set "a=!a:%%=%%%%!" call :main "!a!" ) pause endlocal goto :EOF :main set "fname=%~n1" echo "!fname!"
331 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 12:04:03.11 ] >>330 すまんかった。 そしてサンクス
332 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 12:14:37.03 ] ちなみに上の奴は ! の対策してないから a!b!c.txt とかが ac になったり
333 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 17:00:19.67 ] @echo off for /f "delims=" %%f in ('dir /b *.txt') do set "a=%%f" & call :b pause & exit :b setlocal enabledelayedexpansion set "a=!a:%%=%%%%!" endlocal & call :main "%a%" goto :eof :main set "fname=%~n1" echo "%fname%" "!" に対応したところで完全じゃない(>>278 とか)
334 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 17:07:49.53 ] >>333 やりおる
335 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 17:18:42.38 ] ^も^^になるな
336 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 23:35:09.90 ] やりたくないな そこまでしてなにがしたいんだか
337 名前:デフォルトの名無しさん [2011/04/08(金) 00:27:12.19 ] >>336 小学生は早く寝ろ
338 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 08:08:51.13 ] >>335 はmain側で対応するしかなさそう echo "%fname:^^=^%"
339 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 19:41:11.92 ] DOSでchcp 65001とutf-8で表示できるのですが、毎回入力するのが面倒なのでbatファイルにしたいのですが フォルダの位置はc:\code\2011\にしたいので chcp 65001 cd c:\code\2011\ と書いてbatファイルにしたのですが画面が表示されてすぐきえてしまいます どのようにしたら普通にDOSを立ち上げたときの状態に上のコマンドを実行した状態にできるのでしょうか?
340 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 20:39:41.20 ] @echo off cd c:\code\2011\ cmd /k chcp 65001
341 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 21:40:22.49 ] cmd /k chcp 65001 のショートカットにすればよい
342 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 22:17:39.23 ] >>341 すれ違い
343 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 22:47:52.49 ] ありがとうございます 使わせていただきます
344 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 11:01:48.83 ] バッチファイルに放り込まれたファイルの パスを拡張子だけ抜いて指定場所に書き込みたいのですが、 \の処理がうまくいきません どう記述するのが正しいのでしょうか? perl -Mencoding=cp932 -pe s/"Filedpn"/"%~d1\%~p1\%~n1"/ template.avs > "%~n1.avs"
345 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 11:18:52.68 ] バッチの問題じゃない。perlが`\'を解釈している。
346 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 11:20:42.05 ] >>345 おおう・・・ 実はperlのスレから誘導されてきたんです どうしたものか・・・
347 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 11:55:33.60 ] お前、脳みそ無いの? \ → \\
348 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 12:11:07.50 ] すれ違い
349 名前:デフォルトの名無しさん mailto:sage [2011/04/10(日) 12:36:51.40 ] >>344 単純に"Filedpn" → "%~d1%~p1%~n1" なら、 "s/\"Filedpn\"/\"%%~d1%%~p1%%~n1\"/"
350 名前:デフォルトの名無しさん mailto:sage [2011/04/12(火) 22:20:20.51 ] streamの有無の判定は? if exist file:stream (echo Y) else echo N うまく行かん
351 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 19:48:52.78 ] ■a.bat file=sample_2011_04_01.txt ■b.bat a.batに変数fileにファイル名を格納した場合 b.batでa.batの変数を利用するにはb.batでどのように書くのでしょうか?
352 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 21:22:06.66 ] call a.bat echo %file%
353 名前:デフォルトの名無しさん [2011/04/16(土) 22:28:42.25 ] コマンドプロンプトで実行するとコマンドプロンプトに文字列を出力するプログラムがあります ファイル名を指定して実行で cmd /k test.exe としたのですが、batファイルにpauseを書いたようにしてプログラムの出力が終わったらキーボードをワンプッシュでコマンドプロンプトを閉じたいのですが無理でしょうか? batファイルでないとできませんでしょうか?
354 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 22:31:14.10 ] cmd /k test.exe&pause
355 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 22:51:39.71 ] cmd /c test.exe & pause
356 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 23:13:22.46 ] cmd /k test.exe & pause & exit
357 名前:デフォルトの名無しさん [2011/04/16(土) 23:27:57.43 ] 完璧です!ありがとうございます!
358 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 23:48:50.05 ] if exist 357 (echo さようなら) else (echo もういなくね?)
359 名前:デフォルトの名無しさん [2011/04/17(日) 04:29:54.78 ] すみません、動画エンコードソフトの「HandBreak」のコマンドライン実行で、 以下のサイトのバッチを、サブフォルダ以下にも再帰的に実行させることはできますか? bluemoonjp.blog96.fc2.com/blog-entry-22.html 出力先のフォルダに、ソースフォルダのディレクトリ構造を再現し、エンコードをおこないたいです。 (出力先の指定ディレクトリが存在しない場合は、HandBreak側で生成されます) できれば、出力先フォルダでのファイル有無を見て、存在する場合はパスしたいです。 バッチファイルでそこまでって無理でしょうか。
360 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 08:52:44.95 ] >>359 出来なくはないけどperlとかpython使った方が楽じゃね?
361 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 09:52:32.69 ] `dir /s /b /a:d`取り込めばいいんじゃねーの
362 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 11:25:41.91 ] Haskell推奨
363 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 15:56:06.34 ] >>359 for /dつかえば