11/02/28 15:12:30.34
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %6 【.bat】
スレリンク(tech板)
【.cmd】 バッチファイルスクリプト %5 【.bat】
スレリンク(tech板)
【.cmd】 バッチファイルスクリプト %4 【.bat】
スレリンク(tech板)
【.cmd】 バッチファイルスクリプト %3 【.bat】
スレリンク(tech板)
【.cmd】 バッチファイルスクリプト %2 【.bat】
スレリンク(tech板)
【.cmd】 バッチファイルスクリプト %1 【.bat】
スレリンク(tech板)
2:デフォルトの名無しさん
11/02/28 16:32:12.62
>>1乙
3:デフォルトの名無しさん
11/03/03 16:58:03.90
@echo on
4:デフォルトの名無しさん
11/03/06 18:49:35.04
echo on に @ は要らんだろw
5:デフォルトの名無しさん
11/03/06 19:12:28.36
@@@@@@@@@echo 使えるのに使って悪いか?
6:デフォルトの名無しさん
11/03/07 01:27:19.22
@@@@@@@@@@@@@@@@@@@@echo もっといっぱい使ってやる
7:デフォルトの名無しさん
11/03/07 13:49:52.32
バッチファイルのサンプル集みたいなのありませんか?
勉強用とかでなくて実用的なサンプルを掲載されてるものです
8:デフォルトの名無しさん
11/03/07 17:15:00.27
実用的な?
9:デフォルトの名無しさん
11/03/07 18:17:28.77
実際に使用してるバッチファイルがないからなぁ
10:デフォルトの名無しさん
11/03/07 18:19:31.09
実際に使ってるバッチファイルを紹介して貰ったら実用的かも
11:デフォルトの名無しさん
11/03/07 18:43:49.59
実際に使用していて有名なのはautoexec.batじゃね?
コンベンショナルメモリを無駄にしないためにはconfig.sysだけじゃなく
autoexec.batも理解しないと意味ないしね
12:デフォルトの名無しさん
11/03/07 19:13:40.65
ググってヒットするサンプル集って
けっこう実用的だと思うのはおれだけか
13:デフォルトの名無しさん
11/03/07 20:13:54.94
誰かバッチで標準入力から入力得る方法おしえてくらさい
以前自分が調べたやつから
とりあえず基本
for文
FOR %%B IN (*.TXT) DO TYPE %%B
if文
IF %FLG%==1 DIR
REM コメントだこの野郎
GOTO相当
:START
ECHO そして時は繰り返す
GOTO START
とりあえずチューリング完全
14:デフォルトの名無しさん
11/03/07 20:26:10.53
イミフ
15:デフォルトの名無しさん
11/03/07 21:58:57.14
うちのautoexec.batは空っぽだから実用的じゃねえ
昔のautoexec.batもそれ以外に使い道ないからちっとも実用的じゃねえ
単なる阿呆だなw>>11
16:デフォルトの名無しさん
11/03/07 22:00:52.09
>>13
set /p x=なんか入れろぼけ
17:デフォルトの名無しさん
11/03/08 10:23:29.57
バッチファイルを使い続けて20年
ついに奥義遅延展開を会得したぜ
18:デフォルトの名無しさん
11/03/08 10:50:06.67
>>17
@echo off
setlocal enabledelayedexpansion
set 1=お
set 2=め
set 3=で
set 4=と
set 5=う
for /l %%a in (1,1,5) do echo !%%a!
endlocal
exit
19:デフォルトの名無しさん
11/03/08 16:50:01.75
遅延会得者に拍手w
20:デフォルトの名無しさん
11/03/08 17:50:45.23
遅延展開より、むしろ、華麗な CALL 使いの方に憧れる
ここの前スレだったか、別板スレの前スレだったかはとても勉強になったよ
でも会得してないので遅延展開使っちゃうけどw
21:デフォルトの名無しさん
11/03/08 18:28:47.78
>>20
どういうの?
22:デフォルトの名無しさん
11/03/08 18:43:43.50
こういうの
@echo off
setlocal
set 1=お
set 2=め
set 3=で
set 4=と
set 5=う
for /l %%a in (1,1,5) do call echo %%%%a%%
endlocal
23:20
11/03/08 19:04:57.04
そうそう、そいうの
call echo %%%%a%% というようなの知らなかったからインパクト大きかった
その後ググってたら
URLリンク(d.hatena.ne.jp)
見つけて世界が広がった感じ
他にも目からウロコがいくつかあったけど思い出せないw
24:21
11/03/08 20:10:08.46
>>22
>>23
すげえええええ
call使えばもう1段階変数が外せるのか
てかcallの処理ってこんな風になってたんだね
まさに目から鱗だ
でも少し見にくいからやはり遅延展開!!の方が見やすいかも・・・
25:デフォルトの名無しさん
11/03/08 20:38:42.71
これが初出かな
2005-03-10
URLリンク(otnx.jp)コマンド別/call/
26:デフォルトの名無しさん
11/03/08 20:47:40.50
こっちが早いかな
URLリンク(d.hatena.ne.jp)
27:デフォルトの名無しさん
11/03/08 20:57:08.22
バッチファイルでFizzBuzzをお願い
28:デフォルトの名無しさん
11/03/08 21:35:00.23
バッチでBroken pipeってエラーが大量に出るんですが、これなんでしょうか?
引き渡してるパラメータはログ主力すると、正しく渡されてるようです。
29:デフォルトの名無しさん
11/03/08 22:33:31.13
setlocal enabledelayedexpansion
set o=me
set me=de
set de=to
set to=u
set u=おめでとう
for /f %%A in ( 'call echo %%!%o%!%%' ) do call echo %%!%%A!%%
endlocal
30:デフォルトの名無しさん
11/03/08 23:30:00.51
>>28
windowsでBroken pipeなんて出るの?
まぁ、文字通りパイプが壊れてるんじゃないの?
オプションって言うよりは、入出力関係で不正な操作が起きるんじゃない?
31:デフォルトの名無しさん
11/03/09 02:30:08.73
>>29
バッチを読んでみた。
とりあえずバッチファイルを実行してみた、結果が表示された。
もう一度バッチを読み直してみた。
もう君がなにをしているのか訳がわからないよ。
32:デフォルトの名無しさん
11/03/09 04:52:28.96
setlocal enabledelayedexpansion
set o=me
set me=de
set de=to
set to=u
set u=omedetou
set omedetou=^^^>^^^>31 説明しても良いが、何故かもう一回展開できてしまって、この理由が全く説明できないから、展開されるタイミングとか勘違いしてるかもしれんが良いか?
for /f %%A in ( 'call echo %%%%!%o%!%%%%' ) do call echo %%!%%A!%%
endlocal
33:デフォルトの名無しさん
11/03/09 05:06:07.95
あれ…?
何か勘違いしてた…
説明できるかもしれんけど、もう少し良く考えてみる
34:デフォルトの名無しさん
11/03/09 07:00:45.31
>>30
windowsででちゃってます。入出力関係が問題ですか。
複数のバッチを同時起動してるのが、まずいのかもしれません。
標準入力とか使い回ししてるのかもしれないですね。
35:デフォルトの名無しさん
11/03/09 07:14:09.84
>>34
何か変なコマンド呼んでない?
複数起動禁止でスレッドセーフじゃないコマンドとか、そんなパターンじゃないかと…
36:デフォルトの名無しさん
11/03/09 09:31:03.77
UNIXだとbroken pipeは受け側のプロセスが先に終了して、向こう側が
閉じたパイプに書き込もうとしたときのエラー。
Windowsでも同じ状態をいうんじゃないのか?
37:デフォルトの名無しさん
11/03/09 21:01:22.97
>>32
%for /f %A in ( 'call echo %%!me!%%' ) do call echo %!%A!%
!for /f %A in ( 'call echo %%de%%' ) do call echo %!%A!%
call echo %%de%%
echo %to%
%A=u
%call echo %!u!%
!call echo %omedetou%
%echo ^>^>31
>>31
for /f %%A in ( 'call echo %%%%%%!%o%!%%%%%%' ) do call echo %%!%%A!%%
%for /f %A in ( 'call echo %%%!me!%%%' ) do call echo %!%A!%
!for /f %A in ( 'call echo %%%de%%%' ) do call echo %!%A!%
call echo %%%de%%%
echo %%to%%
%A=%u%
%call echo %!%u%!%
for /f %%A in ( 'call echo %%%%%%%%!%o%!%%%%%%%%' ) do call echo %%!%%A!%%
%for /f %A in ( 'call echo %%%%!me!%%%%' ) do call echo %!%A!%
%call echo %!%%u%%!%
cmd /c call echo %%de%%
to
cmd /c call echo %%%de%%%
u
38:37
11/03/09 21:05:17.09
>>37の結果から推察すると
for /f in ('') のコマンドの処理は単純に cmd /c と同じではなくて
%%→% の処理はされずに %環境変数の展開はされる。
ってことで合ってる?
39:デフォルトの名無しさん
11/03/09 21:16:29.06
はぁ?
40:デフォルトの名無しさん
11/03/09 21:18:32.94
%%→% はバッチだけだろ
cmdの標準入力やコマンドラインは違うだろ
41:デフォルトの名無しさん
11/03/09 21:33:13.64
よくそんなんでやってきたな
表面的にしか理解していない証拠
42:デフォルトの名無しさん
11/03/09 21:43:06.29
そんなんでだめな証拠をみせろや
43:デフォルトの名無しさん
11/03/09 21:53:28.63
>>40
なるほど、コマンドプロンプトで試してみたら
call echo %%de%%
u
call echo %%%de%%%
%u%
となったから>>37と一致したよ
バッチではなくコマンドプロンプトでしてる時と同じ処理になるってことなのか。
ありがとう。
>>39,>>41
そんな煽るだけの誰の役にも立たないクソレスしかつけられないなんて
かわいそうな子なんですね。
44:デフォルトの名無しさん
11/03/09 22:11:49.57
>>16
今更ながら気づいた。こういうことか
@echo off
setlocal enabledelayedexpansion
set /p mo=あ、そう。打ちたいなら何か打てば?
echo !%mo!
endlocal
exit /b
45:デフォルトの名無しさん
11/03/09 22:13:30.35
>>43
んじゃ、このバッチで復習を
setlocal enabledelayedexpansion
set o=me
set me=de
set de=to
set to=u
set u=omedetou
set omedetou=おめでとう
for /f %%A in ( 'call echo %%^^^!%%%%!%o%!%%%%^^^!%%' ) do call echo %%A
endlocal
46:デフォルトの名無しさん
11/03/10 10:15:12.01
質問です。
下記のバッチですが、if 文の条件に合わないのに、
なぜか変数 a の値が変わります。なぜでしょうか?
@echo off
set a="ー"
echo BEFORE=%a%
if %a%%a% == """""" set a="X"
echo AFTER=%a%
pause
2行目で変数に "ー" 以外を代入すると、値は変わりません。
"ー" はバッチ変数のダメ文字なんでしょうか?
47:46
11/03/10 10:27:51.06
>>46 をブラウザからコピペしてバッチファイルを作成したら動作しませんでした。
set a="ー"
の末尾のスペースを削除したら動作しました。
もう、さっぱり分かりません。
48:デフォルトの名無しさん
11/03/10 10:52:15.87
エスケープ文字とか確認してみた?
49:46
11/03/10 11:19:55.02
ありがとうございます!
set a="^ー"
にしたら正常に動きました。
なぜか末尾に半角スペースはダメなようです。
"ー"以外にもエスケープが必要な文字あるんでしょうかね。
実際は変数に何の文字が入るか分からないので、
全部エスケープすりゃいいのかな。
全角文字はやばいのかも。
50:デフォルトの名無しさん
11/03/10 12:30:25.19
どんだけ半角スペース入るのかわからんけど
forのdelimsとかtokensとか使ってみたらどう?
51:デフォルトの名無しさん
11/03/10 12:36:43.13
" "の中でが^はエスケープにならないけどね
52:デフォルトの名無しさん
11/03/10 12:39:50.02
そもそも"がエスケープだからな
53:46
11/03/10 12:51:26.32
>>50
半角スペース1個ですよ。
IE とかでレスをコピペしたら付くよ。
>>51、>>52
普通そうですよね。
では set a="^ー" で正常に動いた理由は?
54:46
11/03/10 12:55:51.56
というか ^ じゃなくても同じだなw
また、分からなくなってきた。
55:デフォルトの名無しさん
11/03/10 13:17:15.56
if文ではーと"が同一視されるとか
56:46
11/03/10 14:19:31.45
"―" でも同じようだ。
if "―""―" == """""" echo 等しい
等しい
だめだこりゃ
57:デフォルトの名無しさん
11/03/10 19:19:48.87
if aaaaa == a―a―a echo 等しい
等しい
"とか^とか全然関係ないじゃん。
要するにif文の比較には駄目文字が存在するって事で。
ーと―は駄目だね。
58:デフォルトの名無しさん
11/03/10 19:35:38.13
if aーaーa == aaaaa echo bug
59:デフォルトの名無しさん
11/03/10 19:58:41.01
if aab==aーb echo x
60:デフォルトの名無しさん
11/03/10 20:37:35.38
バッチを直接使わずに自身を引数にWSHに渡すやり方が便利だ。
だがWSHはWindows 7だとデフォルトでは無効なんだっけか。
PowerShellを覚えなきゃいかんのかなぁ。
61:デフォルトの名無しさん
11/03/10 21:58:30.78
同左ってことですね
62:デフォルトの名無しさん
11/03/10 22:31:24.41
そうさ
63:デフォルトの名無しさん
11/03/10 23:02:31.39
なんでそうなってる?
外人さんにとって、横線は同左なのか?
64:デフォルトの名無しさん
11/03/10 23:10:43.82
URLリンク(support.microsoft.com)
65:sage
11/03/10 23:16:28.91
telnet通信越しにバッチを実行数と、たまに標準エラー出力に実行したコマンドが、
まるまる表示されるときがあるんですが、これなんですかね?
バッチの動作は正しいんですが、気持ち悪いです。
66:デフォルトの名無しさん
11/03/10 23:44:27.22
つまり"コピー"が"コピピ"と同等なのかw
迷惑な仕様だな
67:デフォルトの名無しさん
11/03/11 01:28:50.41
>>64
この問題とは違う気がする
この事例だと"コピー"は"コピ?"となってーはワイルドカードみたいになるってこと?それか正規表現?
>>58>>59見ると正規表現っぽいけど
68:デフォルトの名無しさん
11/03/11 03:53:26.02
「同左」文字の一覧
69:デフォルトの名無しさん
11/03/11 06:42:21.93
半角カタカナの"ー"も同じっぽいけどね
70:デフォルトの名無しさん
11/03/11 08:28:01.29
if ゞ==々 echo ゞ=々
if not "ゞ"=="々" echo "ゞ"≠"々"
71:デフォルトの名無しさん
11/03/11 11:26:30.13
あはは
72:sage
11/03/12 12:29:23.18
Linuxでsyncに該当するコマンドってあります?
73:デフォルトの名無しさん
11/03/12 14:08:30.15
>>72
sync
74:デフォルトの名無しさん
11/03/12 16:45:25.01
if あはは==あは々 echo あはは==あは々
75:デフォルトの名無しさん
11/03/13 12:13:23.68
>73
失礼しました。
Linuxでのsyncに該当するコマンドがwindowsであります?です。
76:デフォルトの名無しさん
11/03/13 12:34:12.10
ハードウェアの安全な取り外し?
77:デフォルトの名無しさん
11/03/13 12:53:26.18
>>75
URLリンク(technet.microsoft.com)
78:デフォルトの名無しさん
11/03/13 21:27:59.41
>>77
まさにこれを探してました。ありがとうございます。
79:デフォルトの名無しさん
11/03/13 23:59:38.64
IF文の変数の比較判定は、思わぬ落し穴がある
set a="b==c"
if not %a%==%a% echo NOT EQUAL !!
80:デフォルトの名無しさん
11/03/14 15:01:05.89
どこが?
おまえだけw
81:デフォルトの名無しさん
11/03/14 16:24:57.67
set a="b==c"
if %a%==%a% echo EQUAL !! だけど?
82:デフォルトの名無しさん
11/03/14 17:47:04.60
ふーん。環境により変わるのか?
教えてくれ>>80の先生
83:デフォルトの名無しさん
11/03/14 19:18:01.59
俺は Win2kSP4 だが
何度やっても NOT EQUAL !! って表示されるな
古い cmd.exe のバグかね?
84:デフォルトの名無しさん
11/03/14 20:04:46.64
>79
ウチのWinXP(SP3)では何も表示されないな。
ついでに「 echo %a% 」を次の行に追加した場合は「 "b==c" 」と表示された。
85:デフォルトの名無しさん
11/03/14 20:13:45.30
今、XPのcmd.exeを拾ってきて試した
変数の展開が微妙に違うなw
win2k
>if not "b == c"=="b==c" echo NOT EQUAL !!
NOT EQUAL !!
winXP
>if not "b==c" == "b==c" echo NOT EQUAL !!
86:デフォルトの名無しさん
11/03/14 20:31:25.66
>>85
2kだと == が "" でエスケープされずに最初の == が比較演算子と認識されてるのかな?
スペースの付き方の違いをみるとそう受けとれる
2kの cmd.exe は for にもバグがあるみたいだし結構ずさんなバグが他にもあるのかも
URLリンク(otnx.jp)
87:デフォルトの名無しさん
11/03/14 21:54:24.82
>2kだと == が "" でエスケープされずに最初の == が比較演算子と認識されてるのかな?
>スペースの付き方の違いをみるとそう受けとれる
もしそうならあとがコマンドとして実行されてエラーになるだろ?
88:デフォルトの名無しさん
11/03/15 00:50:09.59
win2k は "b と c"=="b==c" を 比較して echo してる
89:デフォルトの名無しさん
11/03/15 01:27:18.63
win2kのバグ付きcmd.exeで動くバッチw
@echo off
set b=それは ^^" です。
set c=それは ^^" ではありません。
:x
set a=
set /p a=文字=
if "%a%==%a%" ( echo %b% ) else echo %c%
goto x
90:デフォルトの名無しさん
11/03/15 01:30:48.75
>>86-88
それなら「c"」までがif文となり、その後の「=="b==c" echo NOT EQUAL !!」
が、実行されてエラーになるんジャマイカ?
91:デフォルトの名無しさん
11/03/15 01:41:19.03
「"b == c"=="b==c"」の全体の「"」が外されて
not「b」==「c"=="b==c」と解釈してると予想
92:デフォルトの名無しさん
11/03/15 01:50:38.93
バグってるソフトが、正常なエラーを出すかよw
93:デフォルトの名無しさん
11/03/15 01:55:32.05
>>91
それだと>>89は動かない
94:デフォルトの名無しさん
11/03/15 05:10:10.83
>>93
手元に2000無いから分からんが、どう動くの?
95:デフォルトの名無しさん
11/03/15 07:48:06.63
文字=z
>if "z == z" (echo それは " です。 ) else echo それは " ではありません。
それは " ではありません。
文字="
>if "" == "" (echo それは " です。 ) else echo それは " ではありません。
それは " です。
96:デフォルトの名無しさん
11/03/15 08:45:46.87
win2kのcommand.comもバグってるようだ
97:デフォルトの名無しさん
11/03/15 11:37:36.79
>>95
その結果だけみるとダブルクォーテーションでエスケープ出来ない感じ?
98:デフォルトの名無しさん
11/03/15 13:11:59.49
" は == に対しては何の効果もない。
" が奇数個だとまずい。
" も比較の対象。
99:デフォルトの名無しさん
11/03/15 17:17:41.23
2kなんかどうでもいいんだけど
100:デフォルトの名無しさん
11/03/15 18:48:54.30
Win2000のユーザはまだ多数いると思うぞ
101:デフォルトの名無しさん
11/03/15 22:03:56.89
MSですらサポートやめたOSにまで対応するのは愚かだよ
102:デフォルトの名無しさん
11/03/15 22:26:00.31
2kなんかどうでもいいからサポート中のOSだけでも直してほしいな
103:デフォルトの名無しさん
11/03/15 22:41:15.80
何を?
104:デフォルトの名無しさん
11/03/15 23:00:36.57
>>101
愚かだね。誰もそんな要求してないけど。
105:デフォルトの名無しさん
11/03/15 23:08:44.93
>>103
cmd.exeバグだらけなんだけど
106:デフォルトの名無しさん
11/03/15 23:14:38.46
ここにそんな事を書いても無駄
107:デフォルトの名無しさん
11/03/15 23:25:37.56
どこかに書けば直すとでも?
108:デフォルトの名無しさん
11/03/15 23:30:59.08
否。でも無駄には変わりない。
109:デフォルトの名無しさん
11/03/15 23:37:12.84
だからなに?
110:デフォルトの名無しさん
11/03/15 23:41:30.73
>>106 >>108
ここにそんな事を書いても無駄
111:デフォルトの名無しさん
11/03/15 23:48:08.15
そうですねw
112:デフォルトの名無しさん
11/03/16 01:49:08.39
おまえ誰?
113:デフォルトの名無しさん
11/03/16 09:27:16.44
\ /
\ 丶 i. | / ./ /
\ ヽ i. .| / / /
\ ヽ i | / / /
\
た わ し で す -‐
ー
__ __VV
>:::::::::::::::::::: <
_>':::::::: ::::::::<
,>'::::: ::::::::<
>::::::: :::::::::<
>;;::::: :::::::<
>i::::::::::::::ゞ<
'ヘトハト! ‐-
/
/ ヽ \
/ 丶 \
/ / / | i, 丶 \
/ / / | i, 丶 \
114:デフォルトの名無しさん
11/03/16 10:57:44.78
なんか面白いネタを頼む。愚痴は要らん
115:デフォルトの名無しさん
11/03/16 23:32:55.60
標準出力や、標準エラーを初期化する方法ってあります?
初期化って概念が、そもそも無いかもしれないですが。
116:デフォルトの名無しさん
11/03/17 01:18:24.11
>標準出力
2>標準エラー
117:デフォルトの名無しさん
11/03/17 15:43:02.49
>>115
初期化しないと生ずる不具合を教えてください
具体的にお願いします
118:デフォルトの名無しさん
11/03/17 16:58:13.74
追加になります。
119:デフォルトの名無しさん
11/03/17 20:10:10.61
で、溜まったまま出てこないの? 便秘かよw
120:デフォルトの名無しさん
11/03/17 20:36:18.44
Cでfflush(stdout)するようなもん?
違うか
121:デフォルトの名無しさん
11/03/17 22:02:21.39
それ初期化っていうかよ
122:デフォルトの名無しさん
11/03/17 22:02:55.98
ファイナライズとか?
123:デフォルトの名無しさん
11/03/18 00:05:53.42
closeだっちゃ
124:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/03/19 00:14:09.04
set commandstring=C:\sample_prgm.exe
if exist %commandstring% %commandstring%
126:デフォルトの名無しさん
11/03/19 00:40:25.87
この手の方がパスにスペースを含むような使い方をするとはあんまり思わないけど
スペースぐらいはケアした方が良いような・・・
127:デフォルトの名無しさん
11/03/19 00:42:01.80
クレクレマンにそんなに親切に対応する必要なし。
128:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/03/19 11:40:36.48
NanikaSuruA.exe >> log.txt 2>&1
TokubetuNaNanika.exe > output.txt 2>> log.txt
130:124
11/03/19 14:34:32.99
>>125
ありがとうございます!
>>126
今後スペースが必要となったらその時自分で勉強して手を加えようとおもいます!
ありがとうございました。
131:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/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
11/03/20 15:35:57.84
ありがとうございます!
teeというコマンドを使っていたのはファイルと画面にも表示したいのをさっぱり忘れていました
リダイレクトの方法>>129も含めて試してみます
>>129
なるほど、、
自己再帰する手があるのですね
>>132
用意する手間さえどうにかすればラッパーが一番楽そうですね
134:デフォルトの名無しさん
11/03/23 11:49:37.29
start /B "C:\Program Files\R\R-2.11.1-x64\bin\Rgui.exe" %*
という内容のバッチファイルを書いて実行すると、期待したどうさに
ならずに、コマンドプロンプトのロゴが出てしまいます。
解決策をご教示ください。
よろしくお願いします。
135:デフォルトの名無しさん
11/03/23 12:20:56.26
お前が期待している動作ってのは何だよ
136:デフォルトの名無しさん
11/03/23 16:49:02.50
start "title" "C:\Program Files\R\R-2.11.1-x64\bin\Rgui.exe" %*
/Bなんか使うな必要ないだろ
137:デフォルトの名無しさん
11/03/23 20:44:39.82
>>135
無理すんなw
138:デフォルトの名無しさん
11/03/23 21:33:06.74
>>136
ありがとうございます。startの引数を誤解していました。
139:デフォルトの名無しさん
11/03/23 21:47:00.23
そもそもstart使う意味あんの?
140:デフォルトの名無しさん
11/03/24 00:51:32.62
バッチが止まるだろw
141:デフォルトの名無しさん
11/03/24 00:52:53.55
そんなのイロハだろ?
142:デフォルトの名無しさん
11/03/24 02:37:09.20
アロハだよ
143:デフォルトの名無しさん
11/03/24 10:43:40.20
>>140
最初/bを使ってた時の問題がロゴが出る事だけだったんなら
止まることは何の問題にもなってなかったんじゃ?
144:デフォルトの名無しさん
11/03/24 13:13:54.96
頭悪いの?
145:デフォルトの名無しさん
11/03/24 14:07:08.91
>>144
わからんから説明してくれよ
146:デフォルトの名無しさん
11/03/24 14:14:35.95
>コマンドプロンプトのロゴが出てしまいます。
コマンドプロンプトが出てしまいます。
147:デフォルトの名無しさん
11/03/24 15:27:19.69
わからんちゅうのはなにがわからんのかなぜわからのかわからんからなw
148:デフォルトの名無しさん
11/03/24 19:12:04.02
日本語に不自由してるみたいだな
149:デフォルトの名無しさん
11/03/24 20:38:56.65
んが1つ足りないようだな
150:デフォルトの名無しさん
11/03/24 21:07:30.89
うんん
151:デフォルトの名無しさん
11/03/24 21:08:50.98
vbsからbatをプロンプト非表示で起動したい
しかし
このようにお願いします
ファイルの場所
rscript\c1.vbs
↑実行ファイル
rscript\tool\aw1.bat
↑vbsから実行されるbatファイル
152:デフォルトの名無しさん
11/03/24 21:26:23.29
>>151
プロンプトを非表示でbatを実行するためのvbsって微妙にスレチな気も…
c1.vbs
WScript.CreateObject("WScript.Shell").Run "tool\aw1.bat", 0
153:デフォルトの名無しさん
11/03/25 01:41:16.90
キー操作のCTRL+Zを自動入力させたいのですが、set /p input=0x1aとやってもうまくいきません。
どうすればうまくいくかご教授お願い致します。環境はWindowsXP SP3です。
154:デフォルトの名無しさん
11/03/25 01:54:56.01
できません
155:デフォルトの名無しさん
11/03/25 05:47:40.05
>>153
別プロセスのVBS立ち上げてSendKeys使えばOK
156:デフォルトの名無しさん
11/03/25 18:23:54.67
>>154
あほにはできないw
157:デフォルトの名無しさん
11/03/25 21:00:47.16
なにがやりたいのか?
158:デフォルトの名無しさん
11/03/26 07:56:35.56
>>153
その1バイト分の0x1aをバイナリエディタで入力して
適当なファイル名で保存し、入力リダイレクトに使うってのはどう?
159:デフォルトの名無しさん
11/03/26 11:59:31.16
ロジクールSetPoint.exeの再起動をbat or vbsで行いたいです
taskkillでプログラムを終了→プログラムを起動
との事ですが全くわかりません…良ければご教示お願い致します
160:デフォルトの名無しさん
11/03/26 14:39:28.04
vbsならtaskkill使う必要ないけどね
まぁスレ違いだけど
161:デフォルトの名無しさん
11/03/26 16:06:06.56
>>153
URLリンク(scripting.cocolog-nifty.com)
162:デフォルトの名無しさん
11/03/26 16:08:00.90
>>159
@echo off
taskkill /im SetPoint.exe
start SetPoint.exe
163:デフォルトの名無しさん
11/03/26 18:33:29.39
CTRL+Z はどうした
164:デフォルトの名無しさん
11/03/26 19:22:33.87
>>162
ありがとうございます
ですがすいません終了しなかったり終了しても再起動してくれないことが多いですorz
165:デフォルトの名無しさん
11/03/26 19:29:55.33
終了の待ち合わせが必要なんじゃね?
あいだに
sleep 10
か
ping -n 10 localhost
入れてみ
166:デフォルトの名無しさん
11/03/26 19:45:49.77
>>165
ありがとうございます
ですが言う事聞きません…
再起動の方はディレイかければいけそうです
1/30回しか正常に動作してませんので検証不足ですがorz
167:デフォルトの名無しさん
11/03/26 19:47:44.88
話から別物だとはわかっちゃいるけどファイル名に懐かしいものを思い出したw
URLリンク(about-threats.trendmicro.com)
168:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/03/26 20:08:54.36
timeoutなんていうコマンドの存在をつい最近知った俺…
2000の時からあるなんて知らなかったorz
170:デフォルトの名無しさん
11/03/26 20:09:50.35
>>168
ありがとうございます
/f付けとくといけるみたいですがタスクトレイにアイコンが残ってしまいます
強制終了以外に何かいい案ないでしょうか
あと待ち時間は
sleep 10
ping -n 10 localhost
以外にありますか?
171:デフォルトの名無しさん
11/03/26 20:21:29.55
waitfor signal /t 10
timeout /t 10
172:デフォルトの名無しさん
11/03/26 22:02:18.81
>>171
ありがとうございます
色々ググッたんですがトレイにアイコン残るのは仕様みたいですね
これで使わせてもらいます
ご回答いただいた皆様ありがとうございました
173:デフォルトの名無しさん
11/03/27 12:31:03.80
XCOPY V:\ts\*.mp4 "\\nas\contents" /D /M
録画機から自動エンコしたファイルをこのバッチからNASに飛ばすようにしてるんですが
どうしても同名ファイルがあるとyes/noで止まったままなんです
これをスキップして処理を継続することは出来ないのでしょうか
174:デフォルトの名無しさん
11/03/27 12:36:41.33
help見ただけだけど、replace /aかな?
175:デフォルトの名無しさん
11/03/27 12:38:13.43
/y スイッチ
176:デフォルトの名無しさん
11/03/27 15:05:20.53
/yはスキップせずに上書きしちまうだろ。
177:デフォルトの名無しさん
11/03/27 15:08:14.78
yes n
とかすりゃいいんじゃねーの
178:デフォルトの名無しさん
11/03/27 15:23:45.42
送り先ファイルの存在確認してリネームして送る
179:デフォルトの名無しさん
11/03/27 15:39:10.83
yes/noで止まるのをスキップしたいのかと思ったんだが違うのか
古いファイルなんか残してどうすんの
180:デフォルトの名無しさん
11/03/27 16:37:33.49
ああ、スキップするって単純に送らないでそのファイルを飛ばすって意味だったんかな?
だったら存在確認してリネームじゃなく単純に送らないだけだが。
ts\*.mp4って送り先からてっきり色々パラメータ変えてエンコした結果で
同名ファイルがあるものだと思ってたわ。
上書きしちゃ比較にならんからその線も除外してた。
181:デフォルトの名無しさん
11/03/27 17:48:00.25
robocopyは?
182:デフォルトの名無しさん
11/03/27 18:54:37.00
>>181
ここはそういう板じゃねーんだよ。ソフト板で頑張りな。
183:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/03/27 20:03:03.65
リネームしてからコピーしたほうが楽じゃね?
185:デフォルトの名無しさん
11/03/27 20:17:10.23
コピー前に
xcopy source destination /d /a /u /l > list.txt
でリネーム対称ファイル名を取得して for /f 文でリネームするとか。
186:デフォルトの名無しさん
11/03/27 20:59:05.72
copyhereなら勝手に(n)付けてくれる
187:デフォルトの名無しさん
11/03/27 21:00:09.52
>>186
小学生は早く寝ろ
188:デフォルトの名無しさん
11/03/27 21:29:08.36
自動エンコなら公衆便所掃ジャーだな
189:デフォルトの名無しさん
11/03/28 16:27:24.43
>>185
それ、/y スイッチを追加しないと途中で止まる
コピー元の同名ファイルは、A属性を一時的にクリアすればコピーされない
190:デフォルトの名無しさん
11/03/28 16:40:20.06
rsyncつかえ
191:デフォルトの名無しさん
11/03/28 17:27:45.44
どっちにしろ自分でファイル名を変えなくちゃならん
あとは copy でも何でもいいだろ
192:デフォルトの名無しさん
11/03/28 17:29:23.03
rsyncやcopyhereなら勝手に変えてくれるだろがw
193:デフォルトの名無しさん
11/03/28 17:38:36.30
>>190=192
社会経験ゼロの厨房がw
そんな物が使えれば誰も苦労せんわ、馬鹿が。
194:デフォルトの名無しさん
11/03/28 17:39:07.38
それでいいならな
似たような名前でわかりにくくなるだろ
結局、自分で変更することになるんじゃ?
195:デフォルトの名無しさん
11/03/28 17:41:30.81
>>194は>>192へのレスね
196:デフォルトの名無しさん
11/03/28 17:55:44.21
そんな物も使えん馬鹿が苦労してるわ。
197:デフォルトの名無しさん
11/03/28 18:47:54.29
俺は>>193じゃない。
質問者が使えるかどうかは知らん。
198:デフォルトの名無しさん
11/03/28 19:18:05.42
公衆便所掃ジャーがよっぽど使える
199:デフォルトの名無しさん
11/03/28 19:23:17.00
なんか使いたくないソフト名だなw
200:デフォルトの名無しさん
11/03/28 22:22:58.43
>>196
使うことを禁じられてんだよ
まともな会社で働いてから物言え糞ニート
201:デフォルトの名無しさん
11/03/28 22:30:09.14
原発の作業員並みの環境だな
ヘリコプターで水かけてたのはいったい何だったんだろう
馬鹿の指示で動く兵隊は大変だな
202:デフォルトの名無しさん
11/03/28 22:32:34.35
【原発問題】 「この防護服で大丈夫?」 放射性物質広がり作業員不安
スレリンク(newsplus板)
203:デフォルトの名無しさん
11/03/28 22:34:22.73
お前みたいな馬鹿がいるから禁止してんだろw
会社も大変だなw
204:デフォルトの名無しさん
11/03/28 22:46:05.94
こういう社畜根性のバカばっかだから世の中がいつまでたってもまともになんないんだよな
205:デフォルトの名無しさん
11/03/28 23:15:15.41
>>183
コピー先に日付のディレクトリ作って、そこにコピーすれば良いじゃん
206:デフォルトの名無しさん
11/03/29 00:10:15.73
つまらんから次どうぞ
207:デフォルトの名無しさん
11/03/29 01:30:24.01
何でこのスレが常時伸びてるのか意味不明なんですが?
208:デフォルトの名無しさん
11/03/29 08:33:43.00
つまらんから次どうぞ
209:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/03/29 10:51:17.00
dir使って不要なループを避けるならxcopyのコピー対象外(/h無し)の
隠し属性とシステム属性も除外して'dir /b/aa-h-s V:\ts\*.mp4'だな
逆にxcopyのオプションだけで対応するのなら、forの拡張機能は使わないな
211:デフォルトの名無しさん
11/03/29 11:34:28.35
もう質問者は見ていないだろw
212:デフォルトの名無しさん
11/03/29 11:55:37.81
>>210
転送元がmp4な時点でシステム属性とか隠し属性なんて無いと思うけどw
213:デフォルトの名無しさん
11/03/29 12:08:32.89
>>212
録画のシステムが糞なら録画中のファイルがmp4で隠し属性になる可能性あり
214:デフォルトの名無しさん
11/03/29 12:13:02.40
それはコピーしなくていいのか?
215:デフォルトの名無しさん
11/03/29 16:06:21.24
もう質問者の中学生は見ていないだろw
216:デフォルトの名無しさん
11/03/29 17:27:08.46
会社で何してんだ?
217:デフォルトの名無しさん
11/03/29 17:55:35.59
バッチファイルをダブルクリックすると黒いウィンドウが開くんですがなんとかなりませんか?
218:デフォルトの名無しさん
11/03/29 18:08:10.99
color f0
219:デフォルトの名無しさん
11/03/29 18:51:24.99
batファイルのショーカットで起動
起動時の設定は最小化
220:デフォルトの名無しさん
11/03/29 18:52:14.50
問題は黒いではなくウィンドウが開くなんです
221:デフォルトの名無しさん
11/03/29 18:52:22.96
ショートカットだったw
222:デフォルトの名無しさん
11/03/29 18:53:32.29
個々にショートカットを作る以外の方法でお願いします
223:デフォルトの名無しさん
11/03/29 18:57:11.82
batファイルをexeに変換できるツールがどこかにあったような…
224:デフォルトの名無しさん
11/03/29 19:00:12.02
個々にexeを作る以外の方法でお願いします
225:デフォルトの名無しさん
11/03/29 19:01:55.01
関連付けのopenを
cmd.exe /c start /b "%1"
に変えればよくね?
226:デフォルトの名無しさん
11/03/29 19:04:52.25
よくねえ
227:デフォルトの名無しさん
11/03/29 19:09:43.97
start /b "" "%1" かな?
228:デフォルトの名無しさん
11/03/29 19:11:03.32
start /min "" "%1" かな?
229:デフォルトの名無しさん
11/03/29 19:12:20.64
>>227
よくねえ
230:デフォルトの名無しさん
11/03/29 19:16:29.59
/B 新しいウィンドウを作成せずにアプリケーションを起動します。
なのに変だね
231:デフォルトの名無しさん
11/03/29 19:19:32.67
どっちにしろ黒いのがチラッと…
232:デフォルトの名無しさん
11/03/29 19:29:20.70
>>228
よくねえ
ちったぁ試してから言えよ
役立たずばっか
233:デフォルトの名無しさん
11/03/29 19:34:37.91
試すわけないだろw 質問者が試せよw
234:デフォルトの名無しさん
11/03/29 20:50:36.04
試さなくたって分かるが?
235:デフォルトの名無しさん
11/03/29 20:56:01.72
だったら正解は?
236:デフォルトの名無しさん
11/03/29 21:26:26.84
cmd.exe /c start /min cmd.exe /c "%1"
だよ
237:デフォルトの名無しさん
11/03/29 22:17:46.12
WScript.CreateObject("WScript.Shell").Run """" & WScript.Arguments.Item(0) & """", 0
だな
238:デフォルトの名無しさん
11/03/29 22:52:37.67
それも言うなら
mshta.exe vbscript:close(CreateObject("WScript.Shell").Run("""%1""",0))
だな
239:デフォルトの名無しさん
11/03/29 23:03:31.35
ウィンドウは出したいけどアクティブにしないでっていうのは?
240:デフォルトの名無しさん
11/03/30 00:15:50.37
俺はアホなので試してみたんだが、
>>236 は >>231
>>237 と >>238 は 動かん
241:デフォルトの名無しさん
11/03/30 00:31:59.08
>>236 は batファイルにD&Dが効かなくなるな
242:デフォルトの名無しさん
11/03/30 01:19:39.53
すまんな、試してないんで
>>240
mshta.exe vbscript:close(CreateObject("WScript.Shell").Run("cmd.exe /c ""%1""",0))
ただし>>241
>>241
cmd.exe /c start /min cmd.exe /c "%1" %*
ただし>>240
外部ファイルを作れば別だが、どっちもと言うわけにはいかんな
243:デフォルトの名無しさん
11/03/30 10:20:08.25
保存する場所と名前は適当に変えてくれ
WScript C:\callbat.vbs %*
-- C:\callbat.vbs --
strCmd = "cmd.exe /c"
For i=0 To WScript.Arguments.Length - 1
strBuf = WScript.Arguments.Item(i)
If InStr( 1, strBuf, " ", 1 ) = 0 Then
strCmd = strCmd + " " + strBuf
Else
strCmd = strCmd + " " + """" + strBuf + """"
End If
Next
WScript.CreateObject("WScript.Shell").Run strCmd, 0
244:デフォルトの名無しさん
11/03/30 16:45:56.57
それより
cmd.exe /c
のショートカット作って
c:\hoge.lnk "%1" %*
でいいんじゃね
245:デフォルトの名無しさん
11/03/31 02:37:30.94
それ以前にもう .bat なんか捨てろ!!!!捨てろ!!!!
もういいだろっ…
こんな…ゲイツの気まぐれにっ…!!!!
いっぱい!!!!いっぱい(SEが)死んだんだぞ!!!!
246:244
11/03/31 02:42:04.35
ちなみに、ダブルクォーテーションエスケープでの %1 は
「何が起こっても不思議じゃない」
という覚悟でもなければもう書けない。
…マジで…ゲイツ氏ね…
247:デフォルトの名無しさん
11/03/31 04:09:00.19
>>246≠>>244
いみふ
大体詐称すな
248:デフォルトの名無しさん
11/03/31 04:51:37.89
コマンド プロンプトのデフォのウインドウ位置を弄れ。
ぎりぎり外へ押しやれば起動しても見えなくなるぞw
249:デフォルトの名無しさん
11/03/31 08:07:57.34
タスクバーに出るのもアウトらしいからw
250:デフォルトの名無しさん
11/03/31 08:20:55.05
ウイルスでも作りたいのかw
251:デフォルトの名無しさん
11/03/31 16:57:38.69
>>183
コピー先のリストをdirとかで取って/EXCLUDEに指定すればどうかな?
252:デフォルトの名無しさん
11/03/31 18:57:48.74
作業フォルダにxcopyして、そこからreplace /aでターゲットに
253:デフォルトの名無しさん
11/03/31 22:12:32.06
>>249
いつ、そんな条件が追加されたんだ?
254:デフォルトの名無しさん
11/04/01 19:26:50.48
1582年6月13日
255:デフォルトの名無しさん
11/04/01 22:46:47.79
質問です。
下のバッチで、1個目と2個目の echo の表示が
ユニコード文字があると化けるんだけど
仕様なの?
for /f %%i in ('dir /b') do (
echo "%%i"
echo "%%~i"
echo "%%~nxi"
)
256:デフォルトの名無しさん
11/04/02 00:46:19.04
ユニコード文字って何?
大概の文字はユニコードだけど?
257:デフォルトの名無しさん
11/04/02 01:09:33.23
シフトJISにない文字のことじゃね?
258:デフォルトの名無しさん
11/04/02 01:13:41.77
だったら仕様だな
259:デフォルトの名無しさん
11/04/02 01:18:58.42
for %%i in (*) do (
echo "%%i"
echo "%%~i"
echo "%%~nxi"
)
なら化けんよ
260:デフォルトの名無しさん
11/04/02 01:35:40.37
ありがとうございます。やっぱ仕様ですか。
ユニコード特有の文字のことでした。
261:デフォルトの名無しさん
11/04/02 01:45:47.51
>ユニコード特有の文字のことでした。
だから意味不明だと言っとるだろがぼけ
262:デフォルトの名無しさん
11/04/02 01:54:13.53
うるせハゲ
263:デフォルトの名無しさん
11/04/02 01:56:31.10
だまれデブ
264:デフォルトの名無しさん
11/04/02 01:57:21.57
禿げてないけどぼけ
265:デフォルトの名無しさん
11/04/02 01:58:06.19
デブでないけどぼけ
266:デフォルトの名無しさん
11/04/02 01:59:25.93
ユニコード特有の文字って何だよぼけ
267:デフォルトの名無しさん
11/04/02 02:00:31.99
>>266
ユニコード制御文字
268:デフォルトの名無しさん
11/04/02 02:02:30.29
ぐぐれカス
269:デフォルトの名無しさん
11/04/02 02:06:34.42
カスらっくだぼけ
270:デフォルトの名無しさん
11/04/02 02:09:27.91
UNCパス上のバッチファイル実行するとサポートしてない云々のメッセージが出るけど、
これってカレントが強制的に%WINDIR%にされてるのかね?
> nul で抑制できないけど、取り合えずバッチは動いてるみたい
支障が出る or 出そうな状況ってありますか?
271:デフォルトの名無しさん
11/04/02 02:10:04.30
>>267
確かに。だが、ボケはユニコード制御文字のことを言ってるのか?
272:デフォルトの名無しさん
11/04/02 02:12:29.78
>>270
相対パス使ってると支障でるんじゃね?
取り合えずUNC使う時はpushdとpopd使うようにしてる。
273:270
11/04/02 03:00:19.58
>>272
なるほど<相対パス
今pushd/popdで試してみたら、やっぱ起動時のカレントは
C:\Windowsになってた@Win7
バッチ内で何かの実行ファイルをキックするような内容程度なら、
全部絶対パスで渡してやれば特に問題ないのかな
274:デフォルトの名無しさん
11/04/02 05:30:09.48
>>258
仕様ってどういう仕様?
275:デフォルトの名無しさん
11/04/02 06:19:58.70
cmd /a
276:デフォルトの名無しさん
11/04/02 07:48:37.83
cmd /u で実行しても化けるよボケ
277:デフォルトの名無しさん
11/04/02 08:09:08.88
丂丄丅丌丒丟丣两丫丮丯
278:デフォルトの名無しさん
11/04/02 08:26:15.20
上みたいな字が混じってると
>>209みたいなのが誤動作する可能性があるんだよボケ
279:デフォルトの名無しさん
11/04/02 08:46:12.84
文字コードの話になると、すぐ>>256みたいなガキが出てくるのなw
280:デフォルトの名無しさん
11/04/02 09:22:43.72
>>279
仕様だ。
281:デフォルトの名無しさん
11/04/02 12:48:13.93
>>278
もう古い時代のバッチに拘るな
282:デフォルトの名無しさん
11/04/02 16:20:37.26
>>281
拘ってるのは、知識もスキルもない窓際管理職と掃き溜め管理部門だけ
283:デフォルトの名無しさん
11/04/02 17:33:13.38
>>276
cmd /u で実行したら化けないとは言ってないよボケ
/aと/uは出力を変えるだけだボケ
入力はa固定だボケ
284:デフォルトの名無しさん
11/04/02 17:35:32.15
>>278
>>277はユニコード特有の文字か?ボケ
285:デフォルトの名無しさん
11/04/02 17:41:43.99
(厨)皆いい年こいたおっさんです
286:デフォルトの名無しさん
11/04/02 18:55:32.21
いい年こいてるからボケてるんだよボケ
287:デフォルトの名無しさん
11/04/02 19:40:44.78
若年性もあるよボケ
288:デフォルトの名無しさん
11/04/03 17:50:43.52
あほぼけかすもユニコード特有の文字か?ボケ
289:デフォルトの名無しさん
11/04/03 17:59:29.90
何言ってるか分からんよボケ
290:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/03 18:25:59.37
>290
"%~f1" でOK。(ただしWindows95/98/Meでは不可)
292:デフォルトの名無しさん
11/04/03 18:33:29.11
>>291
何言ってるか分からんよボケ
293:デフォルトの名無しさん
11/04/03 18:35:37.02
%*でいいんじゃね
294:デフォルトの名無しさん
11/04/03 18:37:21.02
>>291
ありがとうございます;;大変助かりました
295:デフォルトの名無しさん
11/04/03 19:07:54.37
そんなわけねーよ
296:デフォルトの名無しさん
11/04/03 19:23:07.99
何でそんなわけねーんだよ?
297:デフォルトの名無しさん
11/04/04 10:38:51.40
指定した文字から、指定した文字までを削除するバッチってどうやるんでしょうか?
ai-1234_ueo.text
変換後
aiueo.text
298:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/04 13:09:46.41
ありがとうございます。
300:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/04 22:06:00.22
>>300
start /?
302:デフォルトの名無しさん
11/04/04 22:10:23.82
こういうコマンドの使い方も知らずに適当な事やるやつってなんなんだろうね。
303:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/04 23:37:03.23
それじゃだめだとちょっと前に言ったばっかりだろ
305:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/05 22:36:40.35
壁に激突してください。
307:デフォルトの名無しさん
11/04/05 23:00:48.68
本当、一度死んだ方がいいよな。
タイトルそのものは全然関係無いってのに。
308:デフォルトの名無しさん
11/04/06 01:27:44.04
ひたすら丁寧口調で、自分の望む解凍を得るまで粘る、ってのがここ数年多いよね
気に入らない回答には罵倒して煽る、みたいなのがたくさんいた昔の方が
健全だったように思える
309:デフォルトの名無しさん
11/04/06 04:05:22.68
>お付き合いお願いします。
お断りします。
310:デフォルトの名無しさん
11/04/06 07:35:16.89
検索で何となくたどり着き、Q&Aサイトか何かと勘違いしてるんだろう。
ここが何なのかも分からずに。
311:デフォルトの名無しさん
11/04/06 13:25:39.50
>>301-303
こういうコマンドの使い方も知らずに適当な事やるやつってなんなんだろうね。
312:デフォルトの名無しさん
11/04/06 13:57:29.48
>>305
["タイトル"] [コマンド/プログラム]
は位置パラメタなんだよ
313:デフォルトの名無しさん
11/04/06 14:07:28.74
>>311
URLリンク(itpro.nikkeibp.co.jp)
のライタ並だね 自称itpro
314:デフォルトの名無しさん
11/04/06 15:21:02.65
FreeDOS暦10年の俺からすると温い質問ばっかりで飽き飽きするぜ
315:デフォルトの名無しさん
11/04/06 16:02:48.17
>>314
| 釣れまっか? ,
\ ,/ヽ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,/ ヽ
∧_∧ ∧∧ ,/ ヽ
( ´∀`) (゚Д゚,,),/ ヽ
( ) (| つ@ ヽ
| | | ___ ~| | ヽ
(__)_) |―|. ∪∪ ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 ~ ~~ ~~ ~~ ~ ~
316:デフォルトの名無しさん
11/04/06 20:22:13.46
ぼちぼちでんな
317:デフォルトの名無しさん
11/04/06 23:23:32.93
set /pで記号入力させて処理するの書いてるんだが
%と&でバグるのはやっぱ防げないかね
318:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/07 00:33:38.40
>>317
!の遅延展開を使えばええだがや
320:デフォルトの名無しさん
11/04/07 00:34:01.76
ちょっと違った
ファイル名に%や&が入ってるときに
それを取り込もうとしてエラー出てた。
321:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/07 02:15:02.22
>>321
!の遅延展開を使えばええだがや
323:デフォルトの名無しさん
11/04/07 03:08:33.98
start "タイトル" "コマンド/プログラム" でタイトル変えない方法ないの?
324:デフォルトの名無しさん
11/04/07 09:00:05.42
だからお前は壁に激突しろと
325:デフォルトの名無しさん
11/04/07 09:24:06.60
カレントディレクトリが表示されるだけだし
start "%cd%"とかでいいんじゃねーの
326:デフォルトの名無しさん
11/04/07 09:53:33.10
>>322
遅延展開も試しが無理だったがや
327:デフォルトの名無しさん
11/04/07 10:18:30.88
%abc.txx
328:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/07 10:21:03.65
>>327
誤字五時
330:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/07 12:04:03.11
>>330
すまんかった。
そしてサンクス
332:デフォルトの名無しさん
11/04/07 12:14:37.03
ちなみに上の奴は ! の対策してないから
a!b!c.txt とかが ac になったり
333:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/07 17:07:49.53
>>333
やりおる
335:デフォルトの名無しさん
11/04/07 17:18:42.38
^も^^になるな
336:デフォルトの名無しさん
11/04/07 23:35:09.90
やりたくないな
そこまでしてなにがしたいんだか
337:デフォルトの名無しさん
11/04/08 00:27:12.19
>>336
小学生は早く寝ろ
338:デフォルトの名無しさん
11/04/08 08:08:51.13
>>335はmain側で対応するしかなさそう
echo "%fname:^^=^%"
339:デフォルトの名無しさん
11/04/08 19:41:11.92
DOSでchcp 65001とutf-8で表示できるのですが、毎回入力するのが面倒なのでbatファイルにしたいのですが
フォルダの位置はc:\code\2011\にしたいので
chcp 65001
cd c:\code\2011\
と書いてbatファイルにしたのですが画面が表示されてすぐきえてしまいます
どのようにしたら普通にDOSを立ち上げたときの状態に上のコマンドを実行した状態にできるのでしょうか?
340:デフォルトの名無しさん
11/04/08 20:39:41.20
@echo off
cd c:\code\2011\
cmd /k chcp 65001
341:デフォルトの名無しさん
11/04/08 21:40:22.49
cmd /k chcp 65001
のショートカットにすればよい
342:デフォルトの名無しさん
11/04/08 22:17:39.23
>>341
すれ違い
343:デフォルトの名無しさん
11/04/08 22:47:52.49
ありがとうございます
使わせていただきます
344:デフォルトの名無しさん
11/04/10 11:01:48.83
バッチファイルに放り込まれたファイルの
パスを拡張子だけ抜いて指定場所に書き込みたいのですが、
\の処理がうまくいきません どう記述するのが正しいのでしょうか?
perl -Mencoding=cp932 -pe s/"Filedpn"/"%~d1\%~p1\%~n1"/ template.avs > "%~n1.avs"
345:デフォルトの名無しさん
11/04/10 11:18:52.68
バッチの問題じゃない。perlが`\'を解釈している。
346:デフォルトの名無しさん
11/04/10 11:20:42.05
>>345
おおう・・・ 実はperlのスレから誘導されてきたんです
どうしたものか・・・
347:デフォルトの名無しさん
11/04/10 11:55:33.60
お前、脳みそ無いの?
\ → \\
348:デフォルトの名無しさん
11/04/10 12:11:07.50
すれ違い
349:デフォルトの名無しさん
11/04/10 12:36:51.40
>>344
単純に"Filedpn" → "%~d1%~p1%~n1" なら、
"s/\"Filedpn\"/\"%%~d1%%~p1%%~n1\"/"
350:デフォルトの名無しさん
11/04/12 22:20:20.51
streamの有無の判定は?
if exist file:stream (echo Y) else echo N
うまく行かん
351:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/04/13 21:22:06.66
call a.bat
echo %file%
353:デフォルトの名無しさん
11/04/16 22:28:42.25
コマンドプロンプトで実行するとコマンドプロンプトに文字列を出力するプログラムがあります
ファイル名を指定して実行で
cmd /k test.exe
としたのですが、batファイルにpauseを書いたようにしてプログラムの出力が終わったらキーボードをワンプッシュでコマンドプロンプトを閉じたいのですが無理でしょうか?
batファイルでないとできませんでしょうか?
354:デフォルトの名無しさん
11/04/16 22:31:14.10
cmd /k test.exe&pause
355:デフォルトの名無しさん
11/04/16 22:51:39.71
cmd /c test.exe & pause
356:デフォルトの名無しさん
11/04/16 23:13:22.46
cmd /k test.exe & pause & exit
357:デフォルトの名無しさん
11/04/16 23:27:57.43
完璧です!ありがとうございます!
358:デフォルトの名無しさん
11/04/16 23:48:50.05
if exist 357 (echo さようなら) else (echo もういなくね?)
359:デフォルトの名無しさん
11/04/17 04:29:54.78
すみません、動画エンコードソフトの「HandBreak」のコマンドライン実行で、
以下のサイトのバッチを、サブフォルダ以下にも再帰的に実行させることはできますか?
URLリンク(bluemoonjp.blog96.fc2.com)
出力先のフォルダに、ソースフォルダのディレクトリ構造を再現し、エンコードをおこないたいです。
(出力先の指定ディレクトリが存在しない場合は、HandBreak側で生成されます)
できれば、出力先フォルダでのファイル有無を見て、存在する場合はパスしたいです。
バッチファイルでそこまでって無理でしょうか。
360:デフォルトの名無しさん
11/04/17 08:52:44.95
>>359
出来なくはないけどperlとかpython使った方が楽じゃね?
361:デフォルトの名無しさん
11/04/17 09:52:32.69
`dir /s /b /a:d`取り込めばいいんじゃねーの
362:デフォルトの名無しさん
11/04/17 11:25:41.91
Haskell推奨
363:デフォルトの名無しさん
11/04/17 15:56:06.34
>>359
for /dつかえば
364:デフォルトの名無しさん
11/04/17 16:14:58.67
ファイル名を指定して実行でcmd /k d:でDドライブに移動できますが
D:\2010\test\に移動したいのですが
cmd /k d: cd 2010\testとやってもD:\のままになってしまいます
無理でしょうか?
365:デフォルトの名無しさん
11/04/17 16:21:50.10
cd /?
366:デフォルトの名無しさん
11/04/17 16:22:25.25
>>364
出来なくはないけどperlとかpython使った方が楽じゃね
367:デフォルトの名無しさん
11/04/17 20:14:51.69
cd /d
368:デフォルトの名無しさん
11/04/17 20:37:42.74
pushd
369:デフォルトの名無しさん
11/04/17 20:57:56.96
プロンプトを立ち上げた状態で cd /dは効くのですが
ファイル名を指定して実行でcmd /k d: cd /d 2010\testとやってもD:\のままになります
使い方が間違ってるのでしょうか?
370:デフォルトの名無しさん
11/04/17 21:22:41.64
cmd /k d: && 2010\test
371:デフォルトの名無しさん
11/04/17 22:05:57.33
>>369
d: cd /d …
これで一つのコマンドだろ。そんなコマンド無いから
本来エラーで何も起きなくてもおかしくないが
偶然、d: の後が無視される仕様だからだけ動いてただけ。
372:デフォルトの名無しさん
11/04/18 00:16:02.42
ありがとうございます
373:デフォルトの名無しさん
11/04/20 14:13:06.13
どういたしまして
374:デフォルトの名無しさん
11/04/21 23:01:57.11
ちょっとした疑問なのですが%~dp0や%~dpn0などの特殊な変数?はどこかにドキュメントはないものでしょうか?
helpコマンドを見てみましたが見つかりませんでした
%~0で引数の0番目(ここではバッチファイル名)、dはドライブ、pはディレクトリ、nはファイル名という部分的なパスを取得するというのは実行結果からわかるのですが、
こういったことが書いてあるヘルプはないものかと思いまして
375:デフォルトの名無しさん
11/04/21 23:48:03.20
forコマンドのヘルプに載ってるよ
376:デフォルトの名無しさん
11/04/22 00:32:07.89
call/?だろ
377:デフォルトの名無しさん
11/04/22 01:16:31.09
ありがとうございます
378:デフォルトの名無しさん
11/04/22 15:10:34.67
どういたしまして
379:デフォルトの名無しさん
11/04/25 09:14:59.50
明示的に環境引数の変化を受け継ぎたい時以外は
call foo.bat
より
start /wait cmd.exe /c foo.bat
の方が影響受けづらくていいな。exit で親まで巻き添えにされたりすることもないし。
380:デフォルトの名無しさん
11/04/25 11:38:51.26
setlocal
if "%a"=="a" (call :temp_a) else (call :temp_b)
goto eof
:temp_a
echo a
exit /b
:temp_b
echo_b
exit /b
:eof
endlocal
381:デフォルトの名無しさん
11/04/25 11:43:56.35
そういうのをうだうだやらなくて済むって話
382:デフォルトの名無しさん
11/04/25 12:51:52.37
set aa=aa
start /wait cmd.exe /c foo.bat aa
echo %aa%
-foo.bat
echo %*
echo %aa%
set aa=bb
383:デフォルトの名無しさん
11/04/25 16:27:36.12
>>379
惜しいな
cmd.exe /c foo.bat
でいいよ
384:デフォルトの名無しさん
11/04/25 19:03:33.39
>>380
関係無いけど goto :eof と goto eof 使い分けるのは初心者イジメだなw
385:デフォルトの名無しさん
11/04/26 14:11:26.61
>384
関係あるよ
>>380は単なる初心者だろ
goto :eofを知らない だからexit/bを使う
endlocalは不要を知らない
386:デフォルトの名無しさん
11/04/26 14:32:45.57
>>385()
387:デフォルトの名無しさん
11/04/26 16:21:43.93
eofがどうとか言う以前に突っ込み所多すぎだろ。
動かないバッチ前にして何をグダグダやってんだか。
388:デフォルトの名無しさん
11/04/26 16:26:42.93
>>387
何をグダグダやってんだか。
389:デフォルトの名無しさん
11/04/26 16:37:19.77
>>387
ほれ ぐだぐだ
390:デフォルトの名無しさん
11/04/26 17:06:34.80
endlocalは不要を知らない
endlocalは不要を知らない
endlocalは不要を知らない
391:デフォルトの名無しさん
11/04/26 18:56:16.13
何をグダグダやってんだか。
何をグダグダやってんだか。
何をグダグダやってんだか。
392:デフォルトの名無しさん
11/04/26 19:33:02.70
フォルダにあるファイルの名前から数字とそれ以外を抜き出して、
違う名前にリネームしていきたいのですが、
g001hoge → "g" "001" "hoge" に分離 → "ghoge001" を生成
g002hoge → "g" "002" "hoge" に分離 → "ghoge002" を生成
g003hoge → "g" "003" "hoge" に分離 → "ghoge003" を生成
どう書けばよいでしょうか?
393:デフォルトの名無しさん
11/04/26 19:42:23.83
set/?
394:デフォルトの名無しさん
11/04/26 21:30:48.22
ヒントじゃなく答えを欲しがる人にはバッチや sed 系の何かより、
むしろ Flexible Renamer を勧めたい。
395:デフォルトの名無しさん
11/04/27 10:50:32.23
batファイルでxmlを操作するのって不可能ですか?
<top>
<tax>1.05</tax>
<item name="たまご" price="250">
</top>
396:デフォルトの名無しさん
11/04/27 10:58:54.60
xslプロセッサかe4x使えよ。
397:デフォルトの名無しさん
11/04/30 05:46:52.36
>>395
不可能じゃないからやれば?
398:デフォルトの名無しさん
11/04/30 22:00:52.19
どうやるんdすか?
399:デフォルトの名無しさん
11/05/01 13:31:46.32
毎日サーバからzipをダウンロードするのですがzipの中で特定の拡張子のファイルのみをbatファイルで一発で展開したいと思います
7Zipを使ってます
これをbatファイルに保存して実行するとtest.zipの拡張子txtのファイルを全て展開します
これを1回のコマンドでtxtだけでなくpdfもにも対応するにはどのように書いたらよいのでしょうか?
C:\7-Zip\7z.exe e test.zip -oC:\hozon .txt -r
.(txt|pdf)みたいに書ければよいのですが・・・
400:デフォルトの名無しさん
11/05/01 13:41:38.28
>>399
2回実行するか
マニュアルよくよんでみるか
どうしても1回って意味不明な縛りがよくわかんね
401:デフォルトの名無しさん
11/05/01 14:34:18.77
2回に分けると2度zipにアクセスするのが無駄なので1回でtxtとpdfファイルを取り出したいのです
マニュアルには複数拡張子は書いてないので出来ませんよね
402:デフォルトの名無しさん
11/05/01 14:58:49.64
そもそも特に拡張子のことなんて書いてないだろ
それっぽいのを拡張子だと判断するのは勝手だが。
拡張子という言葉を頭から削除してマニュアルもっと見ろ
403:デフォルトの名無しさん
11/05/01 15:03:20.73
>2回に分けると2度zipにアクセスするのが無駄なので
そこまで考えるほうが無駄だろ?下手の考え休むに似たりってなw
404:デフォルトの名無しさん
11/05/01 15:31:07.67
C:\7-Zip\7z.exe e test.zip -oC:\hozon .txt -rのところの.txtに正規表現で*.(txt|pdf)も指定できれば良いのですよ
405:デフォルトの名無しさん
11/05/01 15:37:19.88
と思ったら解決できました
406:デフォルトの名無しさん
11/05/01 15:38:24.03
それはそれはよろしいですね! では、よろしく!
407:デフォルトの名無しさん
11/05/01 15:40:42.81
どうでもいいが
*.(txt|pdf)
というのは正規表現じゃないと思うのだが…
408:デフォルトの名無しさん
11/05/01 15:59:25.68
ワイルドカードでもない
409:デフォルトの名無しさん
11/05/01 17:24:50.56
だが言いたいことは分かる
410:デフォルトの名無しさん
11/05/01 19:31:59.45
じゃあ、読んで字の如く、ワイルド表現ちうことで
411:デフォルトの名無しさん
11/05/07 17:58:41.82
バッチファイルの中からMSのsdkに付属のbin\setenv.cmdを呼び出して、環境変数を設定しようと
call "c:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.cmd" /Release /xp
と書いたらsetenv.cmdの中に
SET Path=%VCTools%;%VSTools%;%SdkTools%;%FxTools%;!Path!
などと書かれていて、最後の!Path!(オリジナルのPATHでなく)がそのまま残ってしまいます。
!が%と見なされるような呪文があるのでしょうか?
412:デフォルトの名無しさん
11/05/07 18:13:13.56
>>411ですが、自己解決しました。
413:デフォルトの名無しさん
11/05/08 01:45:29.85
> !が%と見なされるような呪文があるのでしょうか?
そういう呪文、ありますなぁ…
414:デフォルトの名無しさん
11/05/08 02:43:47.53
せっとろうかるでぃせいぶるでぃれいどいくすぱんしょん
415:デフォルトの名無しさん
11/05/08 08:36:32.44
EnableDelayedExpansion
って書いて欲しいなあ、とよく思う…
大文字だけとか小文字だけだと読みにくいw
416:デフォルトの名無しさん
11/05/08 12:05:41.98
そもそもつなげて書くのが間違い。
ちゃんとスペース空けろ!
417:デフォルトの名無しさん
11/05/08 16:07:11.53
C:\test\2010\の中にsample_xxx.zipというファイルがあります
このこのファイル名のxxxのx部分には数字と . 半角英字が入ります
この規則のファイルはフォルダの中に1つしか存在しません
このファイル名を取得して変数に入れる方法はございませんでしょうか?
想定するファイル名
sample_1.0.5.zip
sample_1.12.3.zip
sample_2.0.zip
sample_2.0b1.zip
418:デフォルトの名無しさん
11/05/08 16:14:43.80
set dir = dir sample_*.zip
echo %dir%
で取れるのかなと思ったのですが無理でした
419:デフォルトの名無しさん
11/05/08 16:18:33.11
for %f in (sample_*.zip) do set dir=%f
420:デフォルトの名無しさん
11/05/08 16:59:08.76
>>419
ありがとうございます
421:デフォルトの名無しさん
11/05/08 18:47:26.85
$dir = dir sample_*.zip
echo $dir
422:デフォルトの名無しさん
11/05/08 20:18:54.40
>>421
誰もそんな事は聞いてないの。
423:デフォルトの名無しさん
11/05/11 12:11:48.86
batファイルでゲームって作れるの?まあ作ってる人いないだろうけど
424:デフォルトの名無しさん
11/05/11 13:25:22.39
>>423
batにスクリプト言語埋め込んで、ならやったことあるが
バッチファイルの標準添付コマンドのみで
埋め込みJSとかも禁止、とかになると流石にやる気しないw
425:デフォルトの名無しさん
11/05/11 13:27:11.97
…あ、でも数当てゲームぐらいなら作ったことあるような気もする
これをゲームの内に入れても良いなら「ある」ことになるかなw
426:デフォルトの名無しさん
11/05/11 17:29:12.48
ディレクトリの存在確認で
if exist c:\tmp\nul ...
というテクニックがありますが、名前に空白を含むディレクトリの確認をしようと
ダブルクォートでくくったら正しく動きませんでした。
調べてみるとc:\tmpというディレクトリが存在するとき
1 if exist c:\tmp
2 if exist c:\tmp\nul
3 if exist "c:\tmp'
4 if exist "c:\tmp\nul"
で4だけifが成立しません。今回はcd出来ることで確認したけれど、後学の
ためにif existで正しくディレクトリの存在確認をする記法を教えてください。
OSはXpSP3です。
427:デフォルトの名無しさん
11/05/11 17:35:13.48
"c:\tmp\"
428:デフォルトの名無しさん
11/05/11 18:54:42.75
URLリンク(support.microsoft.com)
429:デフォルトの名無しさん
11/05/11 18:56:31.05
URLリンク(support.microsoft.com)
430:デフォルトの名無しさん
11/05/11 21:16:46.54
>>427でOKでした。NTFSなので>>428-429によるとできるはずなのにバグですかね。
でも、ファイルシステムの違いで出来ない場合もあるんですね。まんどうだなあ。
431:デフォルトの名無しさん
11/05/12 01:50:07.54
ディレクトリの存在確認はいろいろややこしいw
URLリンク(d.hatena.ne.jp)