[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 18:49 / Filesize : 119 KB / Number-of Response : 606
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %3 【.bat】



1 名前:デフォルトの名無しさん [2008/08/04(月) 23:27:23 ]
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。

【前スレ】 (関連スレは>>2)
【.cmd】 バッチファイルスクリプト %2 【.bat】
pc11.2ch.net/test/read.cgi/tech/1197881068/



44 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 04:01:42 ]
>>40
さすがにISPの時はなかったが
オープン系やWeb系開発で英語分からないんです><
って公言してそこで思考停止する奴は腐るほどいる現状。
たいがい老人たちもその口だからそれで免罪符になってしまう。

45 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 13:54:32 ]
>>18
sfu使えばええがな

46 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:07:59 ]
>>23
LFNに""囲まないで大丈夫か?

47 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:09:54 ]
>>42>>45
標準化は嫌、でも標準ツール以上もダメ!な困った会社の仕事。
未だに95,NT3.51〜Vistaまでの色々な環境で動くスクリプトとか言われると、バッチ位なので・・・
標準で組み込んでくれると数年後に仕事が楽になるお。

48 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:36:52 ]
95のDOS窓とNT以降のコマンドプロンプトじゃ全然別物じゃんw

49 名前:デフォルトの名無しさん [2008/08/10(日) 22:32:16 ]
ぜんぜんではないぞ

50 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:44:32 ]
95はまだ良い。
NT351が鬼門過ぎる。

51 名前:デフォルトの名無しさん [2008/08/11(月) 00:08:25 ]
 

52 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:33:25 ]
95は大分駆除されてるけどNT4もまだ結構あるからなぁ



53 名前:デフォルトの名無しさん [2008/08/13(水) 01:46:51 ]
rem Perlのワンライナースクリプトを利用して、
rem 複数ファイル中の文字列を置換する

rem Wild.pmを使ってワイルドカードを使用できるように環境変数を設定
rem set PERL5OPT=-MWild

rem -i.bak ファイルを.bakを付けてバックアップ

rem perl -i.拡張子 -pe s/検索文字列/置換文字列/g ファイル名
rem %1 検索文字列
rem %2 置換文字列
rem %3 ファイル名(ワイルドカード使用可能)
perl -i.bak -pe s/%1/%2/g %3


54 名前:デフォルトの名無しさん [2008/08/13(水) 01:53:13 ]
rem sbrmake.bat
@echo off
call vcvars32
dir/s/b *.sbr > sbrs.txt
echo /n /v /nologo /S stdafx.h /o appname.bsc > sbrs.tmp
rem echo /n /v /o appname.bsc > sbrs.tmp
for /f "delims=;" %%i in (' dir/s/b *.sbr' ) do @echo "%%i" >> sbrs.tmp
bscmake @sbrs.tmp
rem del sbrs.tmp
pause


55 名前:デフォルトの名無しさん [2008/08/13(水) 02:18:56 ]
まだまだ貼るぞぅ

56 名前:デフォルトの名無しさん [2008/08/13(水) 02:24:50 ]
>>53
cygwinとかgrepとかない環境用にperlで文字列置換バッチファイル

>>54
VC(6以前)のブラウザ情報データベースをメイクするバッチファイル

57 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:26:37 ]
>>53>>56
一行野郎(OneLiner)は一行その場で打って使えるから意義があるんであって、
そんなバッチを用意するなんて何が楽しくてperlを使っているんだか判らんな。
ついでに言えば、文字列の置換はcygwinがなくてもできるがgrepではできない。
間抜けなバッチを作る前に基礎知識を身に着けたら?
つーか、せめて文字列くらいダブルコーテーションで囲む位しなさいよ。
>54もなんつーか、今更感が強いし。
もしかして、「こんなにバッチファイルを作れて僕ちゃん凄い」なんて勘違いしていないよな。

58 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:39:27 ]
夏だな〜

まあ、余程の事がなければPerlとかデフォで使えないコマンドは無しでしょ。
何事もなかったかのように続きよろしく>>56


59 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:49:12 ]
いや、もういいよ。

60 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 12:48:36 ]
>>56
どうせスレも進まないので、じゃんじゃん書き込みおk

61 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:10:29 ]
誰も誉めないけどな

62 名前:デフォルトの名無しさん [2008/08/14(木) 02:42:28 ]
>>56
が貼らなければあとは荒らしという糞スレですね



63 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:45:12 ]
どうせこの板はマウスばっかりでコーディングしてる奴らの巣窟

64 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 05:16:49 ]
ていうかawkとかならわかるがperlでワンライナーって発想が俺にはなかった
PCも速くなってきてるんだな

65 名前:デフォルトの名無しさん [2008/08/14(木) 17:30:00 ]


66 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:19:09 ]
デジカメで撮ったjpgファイルをmspaintで開いて上書き保存すれば
容量が少なくなるのですが、画像 001.jpg、画像 002.jpg・・・と
同じフォルダ内にデータが沢山あるので自動処理したいです。
batスクリプトで可能でしょうか?

67 名前:デフォルトの名無しさん [2008/08/14(木) 20:24:11 ]
おまえ馬鹿なの?

68 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:24:48 ]
>>66 mspaintで開くところまでなら

69 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:41:02 ]
>>66
簡単なのはImageMagick(convert.exe)の導入かなぁ。
でもそれって画質落としてるわけだけどほんとにいいのん?


70 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:09:20 ]
>>66
MSPAINTのJPG圧縮率は結構高くて画質悪い。
容量が小さくなってるのは必要な情報(細かさとか鮮明さといったもの)を
捨ててるからなんだけど、それはわかってるのかな?

71 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:52:32 ]
念のため、横から>70に追加。 JPG変換(保存)時に一度捨ててしまった情報を元に戻す事はできない。
予め元のファイルをどこかにバックアップしてから作業し、処理後のファイルと見比べてから
元のファイルを残すかどうか決めるのであればいいけどね。

72 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:23:09 ]
IrfanView辺りならバッチ処理があるよ。ImageMagick使うよりは敷居が低いんじゃない?



73 名前:デフォルトの名無しさん [2008/08/16(土) 09:06:51 ]
なんか貼れよキモヲタ共

74 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 10:44:58 ]
こういう事書くのだけが生きがいのキモオタっているんだよね。

75 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:19:34 ]
nconvertとか

76 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:20:47 ]
>>74
キモヲタ涙目w

77 名前:デフォルトの名無しさん [2008/08/17(日) 02:55:50 ]
ウィザード形式でバッチファイルやバッチコマンドを生成してくれるようなソフトってある?
全部のコマンドとは言わないけど、for系とかfindstr系とかのややこしそうなやつだけでも。

78 名前:デフォルトの名無しさん [2008/08/17(日) 03:26:33 ]

こなの見つけた
www.google.com/search?q=dr.batcher&num=5


79 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 03:58:05 ]
便利な外部コマンド(ベクターとかに)いっぱいあるけど、
普通のfor文やwhile文が使える外部コマンドがあったら、
すげー便利だろうなぁ

80 名前:77 [2008/08/17(日) 11:09:46 ]
>>78

いやぁ、あるもんだなぁ。さんくす。ちょっと使い込んでみるわ。

81 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 13:36:41 ]
>>79
powershell.exe
cscript.exe
mshta.exe

82 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:35:23 ]
>>78
それってOS/2のDr.Dialog作ってたところ?



83 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:42:10 ]
DrDialog、あれはいいものだ・・・

84 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:25:11 ]
ひょっとしたら1行で済むかもしれないが、俺には考え付かなかったので質問…

ren *.exe *.exe.dat で拡張子を偽造したファイルが同一ディレクトリに大量に
存在するのだが、この拡張子を簡単に *.exe に戻すバッチが思いつかない。
仕方ないので今はバッチからWSHを呼び出しているが、これをなるべく少ない行数
のバッチで処理する方法ってある?
exe等の外部ファイルが使用できないため、何とかバッチだけで処理したいのだが
何かいい方法ってあります?
(1行で済むなら板違いなので申し訳ない)

85 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:36:09 ]
ren *.exe *.

86 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:37:08 ]
>>85 ren *.exe.dat *.

87 名前:デフォルトの名無しさん [2008/08/20(水) 05:44:14 ]
>>84
for %i in (*.exe.dat) do ren %i %~ni

for文使えるとラクだぞ。
ディフォルトのWindowsである程度の処理は可能。
C:\WINDOWS\Help\ntcmds.chm

88 名前:デフォルトの名無しさん [2008/08/20(水) 06:20:53 ]
Windowsならbat+wsh最強。
なんたってディフォルト。
RubyとかPerlとかPythonとかいらね。
Windowsしか使わないのにRubyとか笑えるw
スクリプトで済む事をexeにしてVectorに臆面もなく公開とか超うけるw

まぁ、異論は認める。

89 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 10:16:53 ]
>>88
昔、某セキュリティソフトにwshであるというだけでウィルスの疑いをかけられたので
なんとなくwshを敬遠してしまう。

90 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 11:18:42 ]
WSHっつってもVBScriptかJScriptでしょ?

91 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:34:56 ]
VBScriptはFSOとかすぐに反応してくるからな…

92 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:44:37 ]
WSH用のbatエンジンが開発されたのかとおもったぜ。



93 名前:84 ◆W4wSOopp0M mailto:sage [2008/08/20(水) 13:45:45 ]
>>85
>>87
ありがとう!
というか、やっぱり1行でできるのか…
特に ren の *. には参った。
普段よく使うコマンドなのに、こういう使い方、全く知らなかった。
なぜ [*.] で拡張子が消えるのかいまだにわからないが、
恥ずかしくて、これ以上ここで質問できない…。

94 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 14:03:37 ]
*.はDOS時代からの仕様というしかないからな。
ファイル名にほぼ制限のない現在からすると変に見えるのはしかたない。

95 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:27:23 ]
↑こいつは何を言ってるんだw

96 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 18:34:36 ]
>>93
なぜもなにも、そういう仕様だからだよ。
technet2.microsoft.com/WindowsServer/ja/library/f924c4f9-d135-4f25-900d-8e95ad1b09391041.mspx

97 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:20:19 ]
↑こいつは何を言ってるんだw

98 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 00:13:28 ]
command.comからcmd.exeに変わったときに切り捨ててもよかったと思う物の一つだねぇ。拡張子のアレ


99 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 01:32:14 ]
このスレの人間はワイルドカードも知らんのか?!

100 名前:デフォルトの名無しさん [2008/08/21(木) 08:17:43 ]
知ってるけどなにか

101 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:48:24 ]
あぁゴメン
>>94>>98だけだよな、ワイルドカード知らないのなんてw

102 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:31:01 ]
>拡張子のアレ
ソレは関係ないよ



103 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:35:40 ]
>なぜもなにも、そういう仕様だからだよ。
>ttp://technet2.microsoft.com/WindowsServer/ja/library/f924c4f9-d135-4f25-900d-8e95ad1b09391041.mspx
ほんとかどうか試してから言えよ。


104 名前:その1 mailto:sage [2008/08/21(木) 22:16:44 ]
分かり難くて申し訳ありませんが、ご教授お願いします。
以下は、temp.txtというファイルに「ok」の文字列があった場合、
何もせず次の処理へ移行し、もし「ok」の文字列が無い場合は、
hello!!を5回連続して表示させたいと思い書いたものです。
----------------------------------------------------------------
@echo off
for /L %%i in (1,1,5) do (
echo %%i回目の処理を行います。
find "OK" < temp.txt
if errorlevel 1 goto NG temp.txt
if errorlevel 0 goto OK temp.txt

:NG
echo hello

:OK
echo 条件に一致している為、なにもしません。
goto END
)
:END
echo 次の処理へ続く・・・
----------------------------------------------------------------

105 名前:その2 [2008/08/21(木) 22:18:04 ]

自分の行わせたかった動作としては、「ok」の文字列が無い場合、
1回目の処理を行います。
hello
2回目の処理を行います。
hello
・・・・が、5回続くようにしたかったのですが、実際には以下になります。

1回目の処理を行います。
hello
条件に一致している為、なにもしません。
次の処理へ続く・・・

5回繰り返すというfor文の記述が無視されています。
「goto END」に問題があるとは思いますが、いろいろ記述を変更しても、
思うような動作になりません。
どのようにすれば、for文の記述通り、5回の処理を行えるでしょうか。

106 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:37:07 ]
OKラベルをforの外、いっちゃうとENDと置き換える。
たぶん勘違いしてるところはラベルは制御ブロックをつくるわけじゃなく
単に飛び先を提供しているだけなので、NGラベルへ飛んでecho helloしたら
次はOKラベル以降に突入するってこと。
とりあえず慣れんうちは先頭の@echo offを外しとく。

107 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:41:31 ]
>>105
全部書き直したくなるが…w

:NG → :OK と書くからNGに行ったものも全てOKの処理を経て全部ENDへ飛ぶ。
:OK → :NG と書いてNGの時はOKの処理を飛ばせ。

108 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:13:49 ]
>>104
仮にそれで動いたとして、
temp.txtを5回走査することになるがどう思うよ?

109 名前:デフォルトの名無しさん [2008/08/23(土) 15:26:09 ]
>>105
テスト用ソースじゃなくて実際にする事を詳しく聞いた方がいいぞ


110 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:34:59 ]
>>104
IF okが見つかった (
    SET FLAG=TRUE
) ELSE (
    SET FLAG=FALSE
)

IF NOT %FLAG%==FALSE (
    FOR /L %%I IN (1,1,5) DO (
        ECHO hello
    )
)

ECHO 次の処理へ

111 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 23:03:51 ]
つーかFLAG必要なくね?

112 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:29:25 ]
俺ならforの処理内容を丸ごとラベルに飛ばしてcallするところかな



113 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 23:18:56 ]
>>112
IF おk (
    CALL :OK
) ELSE (
    CALL :NG
)

GOTO :END

NG:
ECHO 次の処理へ
GOTO :EOF

:OK
るーぷ
GOTO :EOF

:END
GOTO :EOF



114 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 10:18:07 ]
NGのラベル付け間違ってるぞ

115 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:41:10 ]
大文字やめろよ、気持ち悪いw

116 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:46:50 ]
ラベルをCALLするなんて上等なことができるのか
きちんと戻るんだろうな?

117 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:55:57 ]
>>116

118 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:27:08 ]
いくらなんでもこれは釣りだよな?

119 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:17:53 ]
call exit
戻ってこないよー

120 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:29:45 ]
call call echo なんて

121 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:13:51 ]
dosのbat書いてた人にしてみれば普通の感想。
call %1 とかやって罠にはまったことのあるやつも多いだろう。

122 名前: ↑ mailto:sage [2008/08/29(金) 19:15:35 ]
%1 じゃなくて %0 の間違い



123 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:54:05 ]
それは関係ないだろ
%0
と書いても同じ

124 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:41:22 ]
リカーシブコールで罠にはまるとか(笑)

125 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:48:39 ]
罠ってのはね〜、中でcdしてるとき相対パスで使われちゃうとか〜

126 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:04:53 ]
再帰呼び出しも出来ないマヌケw

127 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:15:35 ]
そうそう、単なるサブルーチンを同一ファイルにまとめたいだけだったのに、
わけ分からん動作になってまいりましたよw

128 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 01:58:42 ]
>>116
call /?

129 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:31:45 ]
echo で空行って表示出来ないの?


@echo off
aaa
ECHO は <OFF> です。
bbb
pause

を実行すると
aaa
ECHO は <OFF> です。
bbb
って表示される


130 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:33:38 ]
間違えた。こっち。


@echo off
echo aaa
echo
echo bbb
pause


131 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:39:45 ]
echo=
scho\
echo[
echo]
echo{
echo:
echo;
echo+

132 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:35:53 ]
>>129
echo.
だろjk



133 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:41:11 ]
できた!サンキュッ!

134 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:01:17 ]
つくづく、echo って、おバカな仕様ですよね。

135 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:10:10 ]
↑echoよりバカ

136 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 16:03:39 ]
echo.exe

137 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 15:47:13 ]
>131
横レスだがこんなんでも出来たのか。
2番目スペルミスで5番目はエラーだけど。

138 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:47:01 ]
エチョー

139 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:41:06 ]
エクスプローラで
 chinco.txt ← これをマウスでドラッグして
 unko,bat ← ここにドロップする
これは出来るんですが、

インターネットエクスプローラかFireFoxで表示中のWEBページの
リンクをマウスでドラッグしてバッチファイルにドロップできません。
BAT でも VBS でもできません。
なにかいい方法はありませんか?

140 名前:デフォルトの名無しさん [2008/09/03(水) 15:50:07 ]
ファイル名を指定して実行にはドロップできるよ

141 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:45:39 ]
>>139
エクスプローラやインターネットエクスプローラかFireFoxみたいな
パソコンの使い方の質問は板違い
こっち↓で質問した方がいい

PC初心者
pc11.2ch.net/pcqa/

142 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 19:20:17 ]
このスレにしてはめずらしく正しい誘導だな



143 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:38:22 ]
htaで受ける

144 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:49:48 ]
このスレの住人は、wshについてどういう見解なのでしょうか?

1.バッチもWSHも両方出来る
2.バッチしか出来ない(Wshに移行したい)
3.Wshよりバッチの方が優れてる(Wshに移行するつもりは無い)








[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<119KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef