バッチファイルプログ ..
[2ch|▼Menu]
261:デフォルトの名無しさん
07/01/21 19:08:20
>>1の主張は板違い

この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

262:デフォルトの名無しさん
07/01/21 19:09:59
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。

263:デフォルトの名無しさん
07/01/21 19:27:33
荒らしは、童貞短小包茎

264:デフォルトの名無しさん
07/01/21 19:29:09
>>256 GJ。このスレ的に問題ない。

265:デフォルトの名無しさん
07/01/21 19:29:38
>>261

>>139
>>181

266:デフォルトの名無しさん
07/01/21 19:38:05
荒らしがでたらめなテンプレで次スレ立てた場合はしょうがなく利用される場合もある。
1がこのスレを仕切る権利をもっているわけではないからな

267:デフォルトの名無しさん
07/01/21 19:41:55
どうせ >>181 あたりが図星だろ。
器のちっちぇえ野郎。

268:デフォルトの名無しさん
07/01/21 19:48:55
>>264
バッチプログラミングなのにCScriptで作ってバッチから呼んでるだけって
ほとんど詐欺だと思わないか?
例えばVCで頼んだプログラムの中味がVBだったらどう思う?

269:デフォルトの名無しさん
07/01/21 19:50:53
動けばよいよい。

270:デフォルトの名無しさん
07/01/21 19:56:17
@REM 荒しの観察が面白いです。

271:デフォルトの名無しさん
07/01/21 19:58:45
CScriptで直接やればいいのにそうしないのは、
CScriptで直接やってしまうと明らかにスレ違いになるからだろ
どう見ても荒らしだな

272:デフォルトの名無しさん
07/01/21 20:18:57
>>268
しかしVBで頼んだプログラムの中身がVCでも気にしない

273:デフォルトの名無しさん
07/01/21 23:27:21
質問させてください。
テキストファイルにある特定の語句をSETコマンドで
変数の値として代入するには、どのような書式を記述すれば
良いでしょうか?

274:あぼーん
あぼーん
あぼーん

275:デフォルトの名無しさん
07/01/21 23:36:08
>>273
特定のファイルはテキストファイルの中にどのように入ってますか?

※頭のおかしいひとは無視しましょう。

276:デフォルトの名無しさん
07/01/21 23:42:28
ある特定の語句をテキストファイルに代入するのです

277:273
07/01/21 23:49:45
>>275
ディスク容量のチェックバッチを作りたいと思ってます。
そこで、chkdskの内容をリダイレクトして、
そのテキストファイルの「全ディスク領域」や「使用可能領域」で表示される
値を変数に入れて、今の使用率を表示させたいと思います。
こういった場合、どうやってSetコマンドを使用すれば良いでしょうか。

278:デフォルトの名無しさん
07/01/21 23:50:50
「テキストファイルにある,特定の語句」でなくて
「テキストファイルに,ある特定の語句を」でしたか。

echo %A% > file.txt

とやれば,環境変数Aの内容が file.txt に書き出されるけれども

279:273
07/01/21 23:55:06
>>278
ありがとうございます。
ご助言頂きたいのは上の方です。
「テキストファイルにある,特定の語句」でなくて


ファイル システムに問題が見つかりました。
CHKDSK を /F オプションを使って実行して、問題を修正してください。

(前略)
80405293 KB : 全ディスク領域
80017288 KB : 87864 個のファイル
29896 KB : 8242 個のインデックス
0 KB : 不良セクタ
174373 KB : システムで使用中
65536 KB : ログ ファイルが使用
183736 KB : 使用可能領域
(攻略)

上のようなテキストがあった場合、
全ディスク領域の「80405293」と
使用可能領域の「174373」の値を変数にSETするにはどうすれば良いでしょうか


280:デフォルトの名無しさん
07/01/22 00:22:59
>>279
こんな感じでしょうか。2行目等は適当に変えてください。
chkdsk.txtという一時ファイルを作ってます。

@echo off
chkdsk /i /c d: > chkdsk.txt
for /f "usebackq tokens=1,2,4" %%i in (`find "領域" chkdsk.txt`) do if /%%j==/KB set %%k=%%i
echo 全ディスク領域: %全ディスク領域%
echo 使用可能領域 : %使用可能領域%

281:273
07/01/22 05:33:37
>>280
ご丁寧にありがとうございます!
頂いた回答で作れそうです。
助かりました。多謝!!



282:デフォルトの名無しさん
07/01/22 09:49:44
rar zip lzhがいっぱいあって中を調べたいんだけど
解凍すると時間かかるからdirの結果みたいなのがほしい。
バッチでできる?

283:デフォルトの名無しさん
07/01/22 09:58:19
そういうコンソールツールを使えば出来るけど本来の機能だけでは無理
コンソールツールの使い方とかはスレ違いなので此処では聞かないように

284:デフォルトの名無しさん
07/01/22 10:42:51
rar, zip, lzhすべてに対応してるコマンドラインツールがあれば
バッチ作るまでもなく簡単ですけどね。
そういうのがなければ、拡張子で判断して処理を分けるバッチ
を作れば良さそう。

285:あぼーん
あぼーん
あぼーん

286:デフォルトの名無しさん
07/01/22 14:21:25
>>273
> ディスク容量のチェックバッチを作りたいと思ってます。
> そこで、chkdskの内容をリダイレクトして、
> そのテキストファイルの「全ディスク領域」や「使用可能領域」で表示される

そのためにchkdsk使うのは重たくないかい?
WSH利用したほうが。。。

287:デフォルトの名無しさん
07/01/22 15:53:50
嵐は他にやることがないらしい。

288:デフォルトの名無しさん
07/01/22 15:56:43
>>287>>286宛ではないので誤解なく

289:デフォルトの名無しさん
07/01/22 18:00:04
こうするとコマンドエコーなし.CMD

@MORE +1 "%~f0" >"%~f0:.VBS" & CScript.exe //NoLogo "%~f0:.VBS" %* & GOTO :EOF
WScript.Echo "俺はCScript専用だぜゴルァ"


290:デフォルトの名無しさん
07/01/22 18:34:43
>>289
moreを使う手があったか。
一々vbsファイルを生成するのはアレだけど面白い

291:デフォルトの名無しさん
07/01/22 18:56:08
スレ違い

292:デフォルトの名無しさん
07/01/22 18:59:15
バッチだから全然問題ない

293:デフォルトの名無しさん
07/01/22 19:20:00
他に適切な板やスレがあると「板やスレ主旨と違う投稿」になる

294:デフォルトの名無しさん
07/01/22 19:23:40
板やスレの趣旨には合ってます。

295:デフォルトの名無しさん
07/01/22 19:35:46
多少関係があっても他にふさわしい板やスレがある

296:デフォルトの名無しさん
07/01/22 23:13:41
荒らしは、働いてないんだなw
嵐のプロフィールに、童貞短小包茎と無職も加えておこう・・・

297:デフォルトの名無しさん
07/01/22 23:16:50
こういう病気なら働けないだろうな

298:デフォルトの名無しさん
07/01/25 22:01:57
バッチファイル初心者です。
dirコマンドで引っ張り出した、ファイル名リスト(flist.txt)があります。
これを一行ずつ参照して内容を表示する、という作業を行うためのバッチファイルを作成しています。

for /f %%i in (flist.txt) do type %%i

ところが、ファイル名リストに記述されているファイル名やパスに半角空白が含まれているため、エラーになってしまいます。
どうすればいいのですか?

299:デフォルトの名無しさん
07/01/25 22:19:48
"delims="

300:デフォルトの名無しさん
07/01/25 23:08:01
そんな超初心者はWindows板へ

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板) バッチならなんでもOK
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

301:デフォルトの名無しさん
07/01/25 23:19:51
>>298
for /f %%i in (flist.txt) do type "%%i"
では?

302:デフォルトの名無しさん
07/01/25 23:23:18
頭のおかしい人まだいたのか

303:デフォルトの名無しさん
07/01/26 07:01:24
>>300

なんで?

304:デフォルトの名無しさん
07/01/26 08:37:27
>>303
>>300は病気だから

305:デフォルトの名無しさん
07/01/26 10:47:05
>>304

なんで?

306:デフォルトの名無しさん
07/01/28 10:13:01
質問します。
各言語のマニュアルを参照するバッチを書いていたのですが
第二引数を入れた場合と入れなかった場合で
変数の展開に差が出てしまいます。
setコマンドではちゃんと反映されているのですが…?

> type man.bat
@echo off
setlocal
set lang=%1
set page=%2
if "%lang%" == "perl" (
  if "%page%" == "" set page=perl
  set page
  echo %podpath%\%page%.pod
  more %podpath%\%page%.pod
)
endlocal

> man perl perl
page=perl
C:\Perl\〜\perl.pod
【ファイルの内容】

> man perl
page=perl
C:\Perl\〜\.pod
ファイル C:\Perl\〜\.pod にアクセスできません

307:デフォルトの名無しさん
07/01/28 10:35:54
>>306
setlocal → setlocal EnableDelayedExpansion
echo %podpath%\%page%.pod → echo %podpath%\!page!.pod
more %podpath%\%page%.pod → more %podpath%\!page!.pod

詳細は set /? で「遅延環境変数の展開」を参照のこと。

308:デフォルトの名無しさん
07/01/28 13:45:42
こんな過疎スレより本スレへ行った方が幸せになれるでしょう

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板) バッチならなんでもOK
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

309:デフォルトの名無しさん
07/01/28 13:55:39
日付で見たらそっちの方が過疎スレだし、
レベルの低いWin板なんか行きたくない。

310:デフォルトの名無しさん
07/01/28 14:23:23
ここは5月に立って300ちょっと
windows板の方は7月に立って700以上
どう考えても向こうの方が多いだろ
それにここなんか>309みたいなスレに関係ない書き込みがほとんどだ

311:306
07/01/28 14:32:23
>>307
ありがとうございます。
ifの中の展開はifの時点で全て展開されてしまうのですね。

>>308
今度コマンドプロンプトの操作についての質問があればそちらを使いますね。
ただ、今回はバッチスクリプトの話題なのでこちらを選びました。

>>309
あそこはあそこでレベル高い方もいらっしゃるので
そう1括りにするのは如何かと思います。

312:デフォルトの名無しさん
07/01/28 15:06:45
>>311
というか、誘導厨はこのスレの荒らしだから
必要なくても、書き込みがあるごとに荒らしにきてる
わけよ。
別に向こうでなくても、こっちでもどっちでもいいんだけどさ。
誘導厨は、手の付けられない半病的な奴だから、
あまり庇わなくていいよ。

313:311
07/01/28 16:55:59
別に私は誘導厨を庇ってはいませんよ。
庇ったとすればWin板で厨に囲まれながら
普通の活動をしてる人達を、ですね。

314:デフォルトの名無しさん
07/01/28 21:05:48
フォルダの中にある特定の拡張子のファイルをこちらから用意したa.exeに通したいんですが
フォルダの中にフォルダがあったりする状況です。
よろしければ教えてください。

315:デフォルトの名無しさん
07/01/28 21:30:53
>>314
@echo off
setlocal enableextensions
for /F "usebackq delims=" %%n in (`dir /S /B /A-D *.txt`) do a.exe "%%n"


316:あぼーん
あぼーん
あぼーん

317:デフォルトの名無しさん
07/01/28 21:57:50
>>315
いいね、これ。
314じゃないけど、使わせてもらうよ。

318:デフォルトの名無しさん
07/01/28 22:15:36
病人に対して不謹慎だけど笑えてくる

319:デフォルトの名無しさん
07/01/29 00:16:50
>>315
何でそんな面倒なことを...

for /r . %f in (*.txt) do a.exe "%f"

じゃだめんなんか?

320:デフォルトの名無しさん
07/01/29 06:06:42
括弧内の変数展開が先に一括でされるのは面白い仕様ですね。
変数やカレントディレクトリをローカルからグローバルに渡すのは
今まで出来ないと思ってたんですが
(endlocal
set %globalvar%=%localvar%)
としたら出来ました

321:デフォルトの名無しさん
07/01/31 02:16:22
誘導厨的にDEBUGコマンドは何に入るんだろ
あれ確かシェル組み込みのコマンドだよな?

322:デフォルトの名無しさん
07/01/31 11:02:08
age

323:デフォルトの名無しさん
07/01/31 11:10:17
現在このスレは使われていません

324:デフォルトの名無しさん
07/01/31 13:36:14
>>321
シェル組み込みのコマンド、っていう表現は微妙
OS標準の外部コマンド。

つか、DEBUGコマンドでどんなバッチファイルを作るんだ?
アセンブラ入力でプログラム作るか、バイナリエディタ代わりに
使うくらいしかなさそうだが、アセンブラを使ったら
アセンブラスレへ誘導されるんじゃね?

325:デフォルトの名無しさん
07/01/31 13:51:17
>324
あれ外部コマンドだったのか…
確かにXPで見たらdebug.exeがあったが
昔は内部コマンドだった気がするのだけれど気のせいか。

326:デフォルトの名無しさん
07/01/31 14:43:01
バッチ - batch 必要な指示をあらかじめすべて与えておき、これを一挙に処理すること。自動処理。

バッチファイル
MS-DOSやWindowsで複数の処理をまとめて行う(バッチ処理)ときに使われる、
起動するプログラムを順に列挙したファイル。
バッチファイルには「.BAT」という拡張子がつく。

327:デフォルトの名無しさん
07/02/01 03:59:21
text-binaryコンバータであるISHはそれ自身のバイナリイメージをdebug.exeでビルドする形で配布されてなかったっけ?

328:あぼーん
あぼーん
あぼーん

329:デフォルトの名無しさん
07/02/01 12:43:34
>>327
されてた、懐かしいな。
まだASCIIネットやら草の根ネットやらでIP接続なんて夢のまた夢だった頃だ。

今そんなバッチファイル投げたら怪しすぎるよな。


330:デフォルトの名無しさん
07/02/01 17:38:36
debug.exeを使って、cscript.exeのファイルのオフセット
000017B2: 77 63
wをcにメモリ上で書き換えて実行なんてできる?
それを>>253のバッチ部分に組み込めるといいかも。


331:デフォルトの名無しさん
07/02/01 18:49:46
そんなの直接コンソール叩けばいいだけだろ

332:デフォルトの名無しさん
07/02/01 20:02:50
@echo off
copy %SYSTEMROOT%\system32\cscript.exe cscript.bin
echo e 18b2 63 > c.tmp
echo w >> c.tmp
echo q >> c.tmp
debug cscript.bin < c.tmp
ren cscript.bin cscript.exe
del c.tmp

333:デフォルトの名無しさん
07/02/02 08:02:43
>>332
copyしてrenじゃダメだろ。

334:デフォルトの名無しさん
07/02/02 13:43:59
あげー

335:あぼーん
あぼーん
あぼーん

336:デフォルトの名無しさん
07/02/02 17:13:30
cscript.exeがアップデートされなきゃいいけれど

337:デフォルトの名無しさん
07/02/02 17:36:21
debug.exeじゃ32bitアプリ扱えないみたい

338:デフォルトの名無しさん
07/02/03 17:11:01
debug.exeは諦めて、.wsfを.cmdに書き換え
ファイル CSCRIPT.EXE と CSCRIPT2.EXE を比較しています
000017B2: 77 63
000017B4: 73 6D
000017B6: 66 64

@ECHO OFF
CScript2.exe //NoLogo "%~f0" %*
GOTO :EOF
<job>
<script language="vbscript">
WScript.Echo "あいうえお"
</script>
</job>

.csfとかに書き換えて関連付けるとよいかも

339:デフォルトの名無しさん
07/02/03 17:28:00
GOTO :EOF 以降はただのテキストデータにすぎないし、
バッチの実質的な中味は1行だけか
とてもプログラミングとは呼べないな

340:デフォルトの名無しさん
07/02/03 17:33:35
どう見てもプログラミングじゃないか

341:デフォルトの名無しさん
07/02/03 17:45:04
>>339
じゃあ何かプログラミングと呼べるものを見せてくれ。

342:デフォルトの名無しさん
07/02/03 17:47:42
どういう使い道があるか分かりませんが、
ファイル CMD.EXE と CMDX.EXE を比較しています
00037596: 42 4A
00037598: 41 53
0003759A: 54 44

CMDX.EXE /C hoge.JSD
なんてことができます。

343:デフォルトの名無しさん
07/02/03 18:13:52
バッチだけじゃプログラミングは不可能ということだね

344:デフォルトの名無しさん
07/02/03 21:27:22
その可能性を模索するのはこのスレにしか出来ない

345:デフォルトの名無しさん
07/02/04 15:54:40
フォルダ内の*.exeファイル複数個(不特定)を全て実行する
ってバッチは作れませんか?

346:デフォルトの名無しさん
07/02/04 16:12:34
>>345

@echo off
for %%i in (*.exe) do "%%i"

347:デフォルトの名無しさん
07/02/04 16:19:02
>>346
どうもです。

あと出来ればでいいですが、引数をつけたりは出来ますか?
具体的にやりたいことは、WindowsのHotfixをCDに貯めて
OS再インストール後にバッチからHotfixを自動でインストールさせたいのですが、
引数で/qをつけないと確認メッセージが大量に出てくるので。

348:デフォルトの名無しさん
07/02/04 16:20:55
とりあえずnliteでできることをバッチでやりたいらしいことは分かった。

349:デフォルトの名無しさん
07/02/04 16:29:33
ほとんどのhotfixはnliteで統合できますが、nliteだと弾かれるのがあるので。
あと、hotfixを全て入れるとCD一枚に入りきらないので。

350:あぼーん
あぼーん
あぼーん

351:デフォルトの名無しさん
07/02/04 16:36:28
少しぐらい脳みそ使えよ、と

352:デフォルトの名無しさん
07/02/04 21:12:28
コンソールを最小化するバッチファイル
@ECHO OFF
MORE +7 "%~f0" >"%~f0.vb"
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe" "%~f0.vb"
DEL "%~f0.vb"
"%~f0.exe"
DEL "%~f0.exe"
GOTO :EOF
Public Class Module1
Private Declare Auto Function GetConsoleTitle Lib "kernel32.dll" (lpConsoleTitle As System.Text.StringBuilder, nSize As Integer) As Integer
Private Declare Function ShowWindow Lib "user32.dll" (hwnd As Integer, nCmdShow As Integer) As Integer
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal className As String, ByVal WindowsName As String) As IntPtr
Public Shared Sub Main()
Dim lpConsoleTitle As New System.Text.StringBuilder(1024)
GetConsoleTitle(lpConsoleTitle,1024)
ShowWindow(FindWindow(Nothing,lpConsoleTitle.ToString()),6)
End Sub
End Class

353:デフォルトの名無しさん
07/02/04 21:13:36
>>347
"%%i"のあとに/q付ければいいと思うけど。

354:デフォルトの名無しさん
07/02/04 21:17:09
スレ違いといいながらも保守してくれるあたりが偉いね

355:デフォルトの名無しさん
07/02/04 22:09:03
ノートンが反応したけどウイルス?

356:デフォルトの名無しさん
07/02/04 22:46:50
>>355
ウイルスが1人常駐してますが気にせずに

357:デフォルトの名無しさん
07/02/05 11:39:35
ここはPowerShellアリなのだろうか

358:デフォルトの名無しさん
07/02/05 12:08:43
PowerShellはcmd.exeやcommand.comとは違う系統なので
↓がいいのでは。
Windows PowerShell (正式版リリース)1.0
スレリンク(tech板)l50

359:デフォルトの名無しさん
07/02/05 13:27:10
Windows板のが本スレらしい

Windows PowerShell (正式版リリース)1.0
スレリンク(win板)

360:デフォルトの名無しさん
07/02/05 18:37:29
>>359
本スレでなくてwin板のPowerShellスレってだけだろ

361:デフォルトの名無しさん
07/02/05 21:21:10
どっちもあんまり賑わってないようだが。

362:デフォルトの名無しさん
07/02/06 01:22:32
バッチファイルに配列ってある?

363:デフォルトの名無しさん
07/02/06 01:28:09
ないよ

364:デフォルトの名無しさん
07/02/06 01:35:14
変数名を動的に使えばそれっぽいことは出来るな

365:デフォルトの名無しさん
07/02/07 01:15:54
最近、バッチファイルにハマってて、覚えたてオ○ヌーのごとく、
可能な限りいろんなことバッチファイルでやってるんですが、
バッチファイルでパイプの入力って利用できんもんなんでしょうか?
これが可能ならできることの幅が広がって非常にうれしいのですが。

366:デフォルトの名無しさん
07/02/07 01:34:14
>>365
幅が広がって良かったね

367:デフォルトの名無しさん
07/02/07 01:58:52
>>366
できるの? どうやって受け取るの?

@copy con %TEMP%input_buffer.txt >nul 2>nul

とかやってもできないし・・・

368:デフォルトの名無しさん
07/02/07 08:17:05
>>367
具体的に何をやりたいの?

369:デフォルトの名無しさん
07/02/07 08:41:58
パイプとか基本的なパソコンの操作方法の質問はWindows板へどうぞ
ここはパソコンの使い方を教えるところではありません。

Windows
URLリンク(pc10.2ch.net)

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板) バッチならなんでもOK
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

370:デフォルトの名無しさん
07/02/07 10:06:07
>>368
hoge.cmd | hige.cmd | mage.cmd
みたいな感じで標準入出力を使ってフツーのコマンドラインのプログラムと
同様にパイプで他のコマンドと連携させたいです。

371:デフォルトの名無しさん
07/02/07 10:08:37
スレ違い

372:デフォルトの名無しさん
07/02/07 10:22:17
>>369,>>371
これのどこがスレ違いなん?

373:デフォルトの名無しさん
07/02/07 10:31:58
URLリンク(pc10.2ch.net)
>この板はプログラムを作る人のための板です。
>プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。

使い方の話は板違いでスレ違い

374:デフォルトの名無しさん
07/02/07 12:23:14
>>373
アホ! これのどこが使い方の話なんだよ!

375:デフォルトの名無しさん
07/02/07 12:50:32
やり方が解ってない奴にとっては使い方に見えないかも知れないけど
解ってる奴からすれば、「あるコマンドの使い方」に過ぎないんだよ。

376:デフォルトの名無しさん
07/02/07 12:54:15
コンパイラやC言語の使い方もPC 初心者板やソフトウェア板へ。


377:デフォルトの名無しさん
07/02/07 12:54:55
>>372>>374
頭の不自由な人にはかまわないほうがいいよ。

こういうことはできるよ。

D:\>type a.cmd
@echo hello, world

D:\>type b.cmd
@echo off
set /p A=
echo [%A%]

D:\>a.cmd | b.cmd
[hello, world]

D:\>

378:デフォルトの名無しさん
07/02/07 13:05:20
>>367
バッチファイルプログラミングする場合は、
コマンドの前に@をつけたり、標準出力、標準エラー出力をnulに
リダイレクトするのはコマンドが正常に動くことを確認してからにすべき。

また、環境変数TEMPにはスペースが入っている場合があるので
それでは駄目だ。

>>370
問題は hoge.cmd , hige.cmd , mage.cmd の中身にあるんだから
それを書かないと意味無い。

379:デフォルトの名無しさん
07/02/07 13:51:37
>>376
C言語 = プログラミング言語
バッチ = OSの基本機能(DOS/Windows)

OSの使い方はWindows板へ

Windows
URLリンク(pc10.2ch.net)

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板) バッチならなんでもOK
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

380:デフォルトの名無しさん
07/02/07 14:09:22
>>379
保守乙

381:デフォルトの名無しさん
07/02/07 23:13:46
1.サーバーある場所以下のフォルダ内のbmp拡張子を全部D:にもってきたいんですが
どうすればいいでしょうか?

2.bmpをtool.exeを通すとtest.bmpとして吐き出されるexeがあります。
1で落としてきたファイルをこのツールを通してもとのファイル名に書き換えたいです。

どなたかバッチに詳しい人アドバイス宜しくお願いします

382:デフォルトの名無しさん
07/02/07 23:51:41
>>381
1. カレントフォルダまたは第1パラメータで指定したフォルダ以下の
.bmpファイルをD:\にコピー

if not (%1)==() pushd "%~f1"
for /d %%i in (*) do "%~f0" "%%i"
for %%i in (*.bmp) do copy "%%i" d:\
popd

2. カレントフォルダの.bmpをtool.exeを通して元のファイル名に戻す
for %%i in (*.bmp) do (
tool.exe "%%i"
move /y test.bmp "%%i"
)

383:デフォルトの名無しさん
07/02/08 01:55:32
>>377
行数をなんらかの形で知ることができるケースなら、それでいけますね。
・・・自分でもいろいろ試してみたけど、C言語で標準入力を読んで
そのまんま標準出力に吐いちゃうプログラムを用意すれば一発でできました。
が、やっぱりこーゆー自作の補助コマンドに頼らずに処理したい。
もうちょっと頑張ってみます。

>>378
前半→ごもっともです。
後半→特定の目的の為ではなく、手段として押さえておきたいんで。

384:デフォルトの名無しさん
07/02/08 09:02:48
>>381-382
質問してるやつも答えてるやつもレベル低いな
それぐらいの簡単なファイル操作さえまともにできないのか

385:デフォルトの名無しさん
07/02/08 09:10:57
釣りしてるやつも釣られてるやつもレベル低いな
もっと美味い餌にしてくれクマー

386:デフォルトの名無しさん
07/02/08 16:57:02
>>381
OSの基本操作はWindows板へ

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板) バッチならなんでもOK
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

387:デフォルトの名無しさん
07/02/08 21:22:20
>>386
ひねりがないな
もう秋田

388:デフォルトの名無しさん
07/02/08 21:51:42
ひねる頭がない

389:デフォルトの名無しさん
07/02/08 23:26:06
だってコピペポだもの

390:デフォルトの名無しさん
07/02/12 12:39:45
スレリンク(saku板:290-291番)
やっとレス削除されたね

391:デフォルトの名無しさん
07/02/12 13:19:44
でも「掲示板・スレッドの趣旨とは違う投稿」には該当しないんだな

392:デフォルトの名無しさん
07/02/12 20:32:23
すみません。どなたがご教授お願いします。
バッチファイルで計算をしたいと思ってます。
5÷2を計算した場合に、2.5と値を出したいのですが、
以下のように記述すると、小数点が切り捨てになってしまい困ってます。

set /a num=5/2
echo %num%
2


小数点を下1桁を表示するような方法がございましたら
ご教授お願い致します。


393:デフォルトの名無しさん
07/02/12 20:47:21
@echo off
set x=5
set y=2
set /a num=10*x/y
set num=%num:~0,-1%.%num:~-1%
echo %num%

394:375
07/02/12 21:07:09
>>376
ありがとうございます!
出来ました!

395:デフォルトの名無しさん
07/02/12 21:19:48
スレ違い

396:デフォルトの名無しさん
07/02/12 21:31:44
バッチで浮動小数点計算をやろうとするところに感銘

397:デフォルトの名無しさん
07/02/12 21:59:33
すみません。誰か教えてください。
数字をカンマで区切りたいです。

100と入力したら100
1000000と入力したら1,000,000です。

よろしくお願いします。

398:デフォルトの名無しさん
07/02/12 22:13:08
>>397
そういうことやりたければバッチ以外を使うことをお勧めします
バッチでそんなことやる人がいたら頭のおかしい人です

399:デフォルトの名無しさん
07/02/12 22:16:46
バッチでカンマ区切りをやろうとするところに感銘
頭がおかしいとかそういう問題ではないね

400:デフォルトの名無しさん
07/02/12 22:22:10
>>398
お前、このスレにずっと粘着して、スレ違いを連呼してるヤツだろ?
少なくともお前が頭がおかしいことは間違いないから
騙されたと思って一度、林先生に診てもらってこい。

401:デフォルトの名無しさん
07/02/12 22:28:46
>>399
むしろ、このスレの存在意義はそういう事をする為だと思っている俺

402:デフォルトの名無しさん
07/02/12 22:29:48
>>397
@echo off
set A=123456789012345678
set B=
:X
set B=%A:~-3%,%B%
set A=%A:~0,-3%
if not "%A%"=="" goto X
set A=%B:~0,-1%
set B=
echo %A%


403:デフォルトの名無しさん
07/02/12 22:50:49
>>385
出来ました
ありがとうございます

404:デフォルトの名無しさん
07/02/12 22:55:31
@echo off
setlocal EnableDelayedExpansion
if "%1"=="" goto :EOF
set n=%1
:bLoop
if /I %n% leq 999 (
  set r=%n%%r%
  goto :eLoop
)
set r=,%n:~-3%%r%
set n=%n:~0,-3%
goto :bLoop
:eLoop
(
  endlocal
  set result=%r%
)


405:404
07/02/12 23:02:02
よく考えたら EnableDelayedExpansion 要らんかも
俺がバッチ書く時のクセが出た、すまんね

406:デフォルトの名無しさん
07/02/12 23:29:19
ここ以外でバッチのスレなかったっけ?
スレ検索したけど見つからない

407:デフォルトの名無しさん
07/02/12 23:32:40
>>406
Windows板のやつ?

408:デフォルトの名無しさん
07/02/12 23:32:58
バッチ専用スレはここだけのはず

409:デフォルトの名無しさん
07/02/12 23:42:52
>>404の最後の意味が解らん

410:デフォルトの名無しさん
07/02/12 23:51:52
>>406
たぶんWindows板
あっちがバッチの本スレ

411:デフォルトの名無しさん
07/02/12 23:53:23
本スレじゃないだろ、常識的に考えて

412:デフォルトの名無しさん
07/02/12 23:53:30
>>406
スレリンク(win板)

413:406
07/02/12 23:56:04
>407-412
それですどうも

414:デフォルトの名無しさん
07/02/12 23:56:49
自演かよ

415:375
07/02/12 23:59:06
すみません、>>397は自分ではありませんが、
↓のような指定の方法について解説されているサイトを
教えていただけないでしょうか。
ググったのですが、なかなかヒットしません。
キーワードだけでもお願い致します。

set num=%num:~0,-1%.%num:~-1%
set B=%A:~-3%,%B%
set A=%A:~0,-3%



416:デフォルトの名無しさん
07/02/13 00:01:52
>>415
set /?
の中に書いてあるよ(環境変数の置換)

417:375
07/02/13 00:16:48
>>416
ありがとうございます!
助かります

418:404
07/02/13 00:35:44
>>409
>404 は call 用。
call されたとき、呼び出し元に値を戻すためにああやって書いた。

419:デフォルトの名無しさん
07/02/13 17:31:11
環境変数PATHをセミコロンで列挙されても判り辛いので
改行して表示するバッチを書いてみたのですが
PATHにダブルクォートが入っていると失敗します。
何か良い知恵はありませんでしょうか。
@echo off
setlocal
  :bLoop
  if defined path (echo off) else goto :eLoop
    set c=%path:~0,1%
    set path=%path:~1%
    if "%c%"==";" (
      echo %s%
      set s=
    ) else set s=%s%%c%
  goto :bLoop
  :eLoop
  if defined s echo %s%
endlocal

420:デフォルトの名無しさん
07/02/13 17:54:56
for %%1 in (%PATH%) do echo %%1

421:デフォルトの名無しさん
07/02/13 18:40:33
初心者はWindows板へ池ということだな

422:デフォルトの名無しさん
07/02/13 18:42:11
嵐は相変わらず論理が破綻してるな

423:デフォルトの名無しさん
07/02/13 18:50:40
嵐が嫌なら向こうに移ればいいんじゃね?ここがスレ違いかどうかは別として、向こうでバッチ関連の話題を扱ってるのは
確かなんだから、移ったところで話題的には支障無いだろう。文句言いながら、いつまでもここに居座り続けてる奴を見ると、
執拗に誘導してる奴と、それに反応してる奴は同一人物なのではと思えてくる。少なくとも、同一レベルであることだけは間違いない。


424:デフォルトの名無しさん
07/02/13 18:53:27
>>423
>>423も同類

425:デフォルトの名無しさん
07/02/13 19:03:41
424

426:419
07/02/13 19:17:38
>>420
まぢで…? 少しショックです。

強いて言うなら、"" 無しで空白入りのパス
(そんな指定をするインストーラもありWinもご丁寧に認識する)
が分離してしまうのが気になります。

とは言え、そんな指定自体が問題かも知れないですね。
ありがとうございました!

427:デフォルトの名無しさん
07/02/13 20:37:14
for /f "usebackq delims=;" %%1 in ('%PATH%') do echo %%1
でいくはずと思ったが、ng 長さ制限に引っ掛かったかも?
for /f "delims=;" %%1 in ('echo %PATH%') do echo %%1
ならok

428:デフォルトの名無しさん
07/02/13 20:56:49
と思ったら全然だめですね
@echo off
setlocal
:loop
for /f "delims=; tokens=1*" %%1 in ('echo %%PATH%%') do (
echo %%1
set path=%%2
if defined path goto loop
)


429:デフォルトの名無しさん
07/02/13 22:23:15
馬鹿にされたのがよっぽどくやしかったんだな

430:デフォルトの名無しさん
07/02/13 22:51:08
バグ?
for /f "usebackq delims=;" %%1 in ('a a;b b;c c') do echo %%1


431:デフォルトの名無しさん
07/02/13 22:58:43
>>430
プログラミング以前に使い方わかってない人はWindows板へ

432:デフォルトの名無しさん
07/02/14 00:46:43
>431
つまりキミにも解らないんだね

433:375
07/02/14 00:51:16
度々すみません。昨日バッチファイルの計算で質問したものです。
小数点の表示は何となく分かったのですが、
「0.いくつ」を表示させる方法がわかりません。

1÷3=0.33と表示させたいと思ってます。

@echo off
set x=1
set y=3
set /a num=10*x/y
set num=%num:~3,1%.%num:~-2%
echo %num%

上のようにすると、「.3」と表示され、初めの"0"が省略されてしまいます。
すみません。どうすれば良いか教えてください。
よろしくお願いします。

434:デフォルトの名無しさん
07/02/14 00:55:07
>>433
if で比較演算子使って、場合分けが確実かな。

435:375
07/02/14 01:18:55
>>434
レス有難うございます。
もう少しヒントを頂けないでしょうか・・・



436:デフォルトの名無しさん
07/02/14 01:34:06
@echo off
setlocal
for %%1 in (%PATH: =::%) do (
set x=%%1
call echo %%x:::= %%
)


437:デフォルトの名無しさん
07/02/14 06:14:57
cd c:\program files\gikonavi\log\2ch\news4vip
del *.dat
del *.tmp
exit

VIPのログ消去

438:デフォルトの名無しさん
07/02/14 12:51:57
>>437
バッチファイルプログラミングの鬼才現る

439:デフォルトの名無しさん
07/02/18 16:16:07
setlocal enabledelayedexpansion
set cr=^(改行)
(改行)
(改行)
echo %path:;=!cr!%


440:デフォルトの名無しさん
07/02/18 23:46:52
awkを持ってたら
echo %PATH% | awk BEGIN{RS=\";\"}{print}
なんてやりたくなってしまう。

441:デフォルトの名無しさん
07/02/19 00:50:47
runasで一時的にadminになってcmdを実行したいのですが、このとき、特定のパスで開くようにするにはどうすればいいんでしょうか

442:デフォルトの名無しさん
07/02/19 01:44:08
cmd /k cd 特定のパス

443:デフォルトの名無しさん
07/02/19 08:47:09
>>439
こんなこと出来たのかー!
^ の表記って他に何が出来るんだろう

444:デフォルトの名無しさん
07/02/19 10:38:16
コンソールの使い方はスレ違い

445:デフォルトの名無しさん
07/02/19 10:40:14
>>441-442
パソコンの使い方もスレ違い

446:デフォルトの名無しさん
07/02/19 18:29:07
コンソールの使い方とかパソコンの使い方とかは
書いてないのでスレ違いではありませんね。

447:デフォルトの名無しさん
07/02/19 19:45:59
>>1に従うと拡張子を".cmd"にしても「バッチファイルプログラミング」ではなくなってしまう件

448:デフォルトの名無しさん
07/02/19 19:58:52
>>447
御主、頭固いな

449:デフォルトの名無しさん
07/02/19 20:15:27
>>448
御主、頭固いな

447の言ってるのは、>>1に書いてあることだけがこのスレのルールでは無いってことだろ。
>>1に反していても、このスレの範疇となる話題はあるし、逆に>>1に反していなくても
スレ違いとなる話題もあるってこった。普通に見れば446の方が頭固い。

450:デフォルトの名無しさん
07/02/19 21:21:41
>>433
set /a num=10*x/y
set /a i=num/10
set /a f=num-i*10
echo %i%.%f%


451:デフォルトの名無しさん
07/02/20 19:21:09
>>445
なんでだよ。バッチファイルの中で使うんだよ

452:デフォルトの名無しさん
07/02/20 19:36:48
バッチ自身がやってるわけじゃないからスレ違い

453:デフォルトの名無しさん
07/02/20 19:51:41
ここは初心者にパソコンの使い方を教えるスレです

454:デフォルトの名無しさん
07/02/20 20:00:18
プログラムを作る板なのに
プログラムの使い方を質問する人がたまにいるね

455:デフォルトの名無しさん
07/02/21 11:33:07
>>450
おまいすげーな…。
俺はてっきりsubstr()みたいなので生成後の文字列を判定するのかな、どうやるんだろう
って考えてたよ。
ちなみにWindowsのDosのバッチにsubstring関数みたいなのってあるんでしょうか?


456:デフォルトの名無しさん
07/02/21 12:12:07
>>455
set /? より。↓のようなのはあります。

また、展開の副文字列を指定することもできます。

%PATH:~10,5%

は、PATH 環境変数を展開し、展開結果の 11 番目 (オフセット 10) の文字
から始まる 5 文字だけを使います。長さが指定されなかった場合は、変数の
値の残りの長さを既定値とします。オフセットまたは長さのどちらかが負の値
の場合、環境変数の値の長さに指定されたオフセットまたは長さを足してその
数を使います。

%PATH:~-10%

は、パス変数の最後の10 文字が展開されます。

%PATH:~0,-2%

は最後の 2 文字以外のすべてが展開されます。

457:デフォルトの名無しさん
07/02/21 12:25:16
>>456
ほうほう。サンクスコ。
最新のMS−DOSはバッチで何でもできるんだ…。PERLいらずだな。

458:デフォルトの名無しさん
07/02/21 14:43:46
cmd.exeになっていろいろできるようになったとは言え、
PerlやAWKでやったほうがすっきりすることが多いね。

459:デフォルトの名無しさん
07/02/21 15:15:18
PerlやAWKは標準環境では使えないから、導入から結果を出すまでを考えれば
WSHの標準で使えるjsやvbsでやった方がスマートだよ。
引きこもって自分のPCしか弄らない人には関係ないかもしれないけど。

AWKはあんまり弄ったこと無いけどPerl、Python、Ruby使えたって、
表で役に立ったことなどほとんど無い。

460:デフォルトの名無しさん
07/02/21 15:26:22
バッチプログラミング以外はWindows板へ

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
スレリンク(win板)

461:デフォルトの名無しさん
07/02/21 16:34:29
過疎ってるんだからちょっとした独り言ぐらいさせてやれ。

462:デフォルトの名無しさん
07/02/21 16:57:05
このスレは存在価値がないということか

463:デフォルトの名無しさん
07/02/21 19:04:51
ニュー即にハルヒスレがあるように、ちょっと脱線しても多目に見ようじゃないか

464:デフォルトの名無しさん
07/02/21 19:13:01
過疎スレに迷い込んでくる初心者を本スレへ誘導しないと

465:デフォルトの名無しさん
07/02/21 19:54:30
スレリンク(saku板:291番)
>291 :削除聞仲 ★ :2007/02/11(日) 23:56:54 ID:???0
>>>290
>住民さんが嫌がっていて152で謝っているのになぜ続けるのでしょう?
>嫌がらせに見えますのでレスの付いてないところだけGL6として削除しました。
>

あまり執拗に続けると、このスレの住人だけじゃなく大勢に迷惑かける
事を判ってないんだな。

466:デフォルトの名無しさん
07/02/21 19:57:14
過疎スレはまとめた方がいい

467:デフォルトの名無しさん
07/02/21 19:58:20
バカな奴だ

468:デフォルトの名無しさん
07/02/21 20:04:59
ネタが少なく、過疎ってる

469:デフォルトの名無しさん
07/02/21 20:51:20
ここは「あえてバッチでやってみるスレ」として成立させないか?
Win板のスレで「バッチで浮動小数点計算やりたいです」って書いたら
スクリプト使えって言われて終わりだろうがここならそれが可能だと思う

470:デフォルトの名無しさん
07/02/21 21:10:54
>>1
>バッチファイルプログラミングとは・・・・
>・ファイル拡張子が ".bat"
>・複数のコマンドを使い、実行させるバッチファイルを作る

ということなら、awkやsedを組み合わせてもおk?

471:デフォルトの名無しさん
07/02/21 21:12:28
小学生じゃないんだから自分で判断しろよ。


小学生ならごめんね。

472:デフォルトの名無しさん
07/02/21 21:19:52
>>470
おkだろ。程度にもよるけど。

473:デフォルトの名無しさん
07/02/21 21:42:34
あえて最悪の選択手段を選ぶのは個人の自由だとしても
無知な初心者を巻き添えにするのはかわいそう

474:デフォルトの名無しさん
07/02/21 21:50:47
ここら辺でどの範囲までがこのスレで言う「バッチファイルプログラミング」なのか
きちんと決めといた方がいいんじゃないか?
書き込みがあるたびに病気の人が出てくるのもウザいし。

475:デフォルトの名無しさん
07/02/21 21:54:20
決めたとしても病人は相変わらずウザいだろう。

476:デフォルトの名無しさん
07/02/21 21:59:25
awkやsedを組み合わせは使わない人にはウザいだけだよ。
batに対する嫌がらせとしか思えない。

477:デフォルトの名無しさん
07/02/22 00:54:04
そもそもバッチ処理をするためのものなんだから
.batでawkは使うな、ってのは本末転倒な意見だな。

もちろん「あえてバッチでやってみるスレ」とするのなら、それはそれで良いが。

478:デフォルトの名無しさん
07/02/22 08:43:44
>>477
あえてここでawkをやろうとするのが本末転倒

479:デフォルトの名無しさん
07/02/22 09:26:00
>478
過疎スレなんだし大目に見てやれ

480:デフォルトの名無しさん
07/02/22 11:51:28
awkやsedってSFU(ServiceForUnix)に入ってるんだったっけ?
標準じゃないよな?
まず標準のみの環境かどうかが(ry

481:デフォルトの名無しさん
07/02/22 12:03:52
メタ議論ウザス

482:デフォルトの名無しさん
07/02/25 17:02:16
>>450
set /a f=i % 10
があったね

483:デフォルトの名無しさん
07/02/25 21:30:39
すみません、DOS初心者です。
質問させてください。

test.txtの内容
--------------------
aaa(111)  bbb(222)
ccc(333)  ddd(444)
--------------------
というのを
test2.txt
--------------------
aaa(111)
bbb(222)
ccc(333)
ddd(444)
--------------------
というように並べて出力させたいのです。
aaa(111)  bbb(222)←文字列の間にはtabで区切られています。

for文でできそうな感じですが、ド素人なものでよくわかりません(>_<)
どなたか教えてください、お願いします!

484:483
07/02/25 21:37:03
すみません、使ってるOSはWindowsXP home editionです

485:デフォルトの名無しさん
07/02/25 21:39:31
マルチ死ねよ

486:483
07/02/25 22:38:08
スマソ、自己解決しますた

@echo off
for /F "tokens=1,2" %%a in (test.txt) do echo %%a >>test2.txt |echo %%b>>test2.txt

>>485
荒らしてるわけではないんだから死ねはないんじゃないの

487:デフォルトの名無しさん
07/02/25 22:47:03
死ねばいいよ

488:デフォルトの名無しさん
07/02/25 23:13:53
>>487
必死だな

489:デフォルトの名無しさん
07/02/25 23:26:08
マルチなんて荒らしみたいなもんだろ

490:デフォルトの名無しさん
07/02/26 01:23:11
>>489
同意。本人にそのつもりは毛頭ないのがさらにたちが悪い。

491:デフォルトの名無しさん
07/02/26 01:55:36
いちいちマルチかどうか確認してるのがキモイ

492:デフォルトの名無しさん
07/02/26 02:31:39
>>491
意図せずにマルチを見つけることはあっても、
わざわざマルチかどうか探すヤツなんて居ねぇから。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5067日前に更新/194 KB
担当:undef