1read 100read
2012年09月プログラム45: 【.cmd】 バッチファイルスクリプト %9 【.bat】 (300) TOP カテ一覧 スレ一覧 2ch元 削除依頼
「コンパイラ・スクリプトエンジン」相談室15 (590)
monazilla Part 6 (623)
GPGPU#5 (274)
データ構造とアルゴリズム総合 (550)
くだすれDelphi(超初心者用)その54 (902)
Ruby 初心者スレッド Part 50 (489)

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


1 :2012/04/21 〜 最終レス :2012/10/31
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %8 【.bat】
http://toro.2ch.net/test/read.cgi/tech/1315844420/
【.cmd】 バッチファイルスクリプト %7 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1298873550/
【.cmd】 バッチファイルスクリプト %6 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1277465356/
【.cmd】 バッチファイルスクリプト %5 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1242268171/
【.cmd】 バッチファイルスクリプト %4 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1229955189/
【.cmd】 バッチファイルスクリプト %3 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1217860043/
【.cmd】 バッチファイルスクリプト %2 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/

2 :
>>1

3 :
>すれ立て間違えたw
ほらみろ

4 :
バッチファイル処理を強化する
ライブラリを作ろう。

5 :
これ以上駄作ふやすなよ

6 :
@echo >>1

7 :
>>6
初心者乙
@echo ^>^>1乙

8 :
>dir
2012/04/22 12:01:47 21 1乙


9 :
for /d %%i in (c:\*) do if XXX (exec1 "%%~i") else (exec2 "%%~2")
でXXXの条件が%%iがsで終わっていたらというのにしたいんですがどうすればいいですか?
c:\windows, c:\usersなどはexec1
それ以外ならexec2に分岐したいのです

10 :
一度何かの変数に入れるしかないな

11 :
findstrをかませるんだな

12 :
for /d %%i in (c:\*) do (
set s="%%~i"
call :sub "%%~i"
)
exit
:sub
if "%s:~-2%=="s" (exec1 "%~1") else (exec2 "%~1")
exit /b

13 :
for /d %%i in (c:\*) do (echo %%i)|findstr /e "s" && (exec1 "%%~i") || (exec2 "%%~2")

14 :
俺様の力作バッチを皆に恵んであげよう
pushd X:\エロ画像 || goto :eof
rem カレントディレクトリのファイルをMD5ハッシュ値にリネーム 要md5sum
for %%i in (*) do for /f "usebackq delims= " %%j in (`md5sum "%%~i"`) do ren "%%~i" "@%%j%%~xi"
rem 16個のサブフォルダに振り分け
for %%i in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do (mkdir @%%i&move @%%i*.* @%%i\)
mkdir 重複&move *.* 重複\
rem 画像をランダムに開く 要ruby
ruby -x "%~f0"
popd
goto :eof
#!ruby
`dir /s /b /a:-d`.split("\n").shuffle.each{|i| `start "" "#{i}"`; gets}

15 :
おー凄い、馬力作バッチ

16 :
ばか 作 ぱっち

17 :
@がキモい

18 :
コマンドプロンプトでバッチの引数に「^^"&time /t」を指定したとして、
これを変数に格納する事ってできますか?
C:\>a.bat ^^"&time /t
『a.bat』
================================
@echo on
set AAA=%1
set AAA=%~1
set "AAA=%1"
set "AAA=%~1"
================================
結果
================================
C:\>set AAA=" & time /t
23:08
C:\>set AAA=" & time /t
23:08
C:\>set "AAA=^" & time /t"
23:08
C:\>set "AAA=^" & time /t"
23:08
================================

19 :
パス

20 :
for /r %i (*) do @echo.%i
とやると途中からecho %i.%iとやったのと同じになるんですが
誰か理由わかりますか?

21 :
echo %i.%i
じゃなくて
echo %i.[表示がおかしくなる直前のファイル名]
みたいな感じになってました

22 :
コンソールのゴミじゃなくて?
ファイルにリダイレクトしても?

23 :
ファイルに書いても一緒です。
十数行までは普通に出るんですが、途中からおかしくなる。

24 :
バッファのゴミだろね
%~fi
はどう?

25 :
同様です。
わからないのは
echo %i では問題ないのに
echo.%i 他スペース以外だと二重になってしまうことです。
この辺の理屈が知りたい。

26 :
必要ないのに.なんかつけるから反感買って嫌がらせじゃないか

27 :
おれっちじゃ再現しないな
osのよるんじゃね?

28 :
>>26
%iが空白だったときに echo は ONです っての見たくないから
ピリオド打つの癖になってるもんで。

29 :
for %i in (*) do @echo\a
とかでもおかしい表示になってたのにデバッガ開いたら正常になった
原因はfor臭い

30 :
>>22
XPでよくコマンドプロンプト表示がバグることがあるけど、
あれのMS公式見解ってないのかね?
エンドユーザにPCの情報採取してもらうのに
dir/a|findstr ほにゃらら
とかやらせて、DOS窓のスクショを送ってもらうんだけど
前にコンソール表示のバグらしき事象に騙されたことがあったんだけど、
リダイレクトで万が一既存ファイルを上書いてしまうリスクを考えると、
エンドユーザにリダイレクトはさせたくないんですよね

31 :
| clip
ならよかんべ

32 :
>>28
ピリオドはやめとけ
echo > echo.txt
for %i in (txt) do @echo.%i

33 :
>>28
\もやめとけ
md echo
echo >echo\aaa.txt
for %i in (aaa.txt) do @echo\%i

34 :
echoで改行だけを出力する時困り申す

35 :
http://scripting.cocolog-nifty.com/blog/2008/11/echo-3741.html

36 :
>>18は無理なのかな。

37 :
CMDCMDLINE

38 :
無理無駄無用

39 :
%*

40 :
プログラムを実行したときにプログラム内の処理でキー入力させられるものがありますが
それらをbatファイルから入力させることは可能でしょうか?

41 :
>>40
SET /? をよく読むんだ

42 :
setって変数を宣言するものですよね?
コマンドプロンプトで動作するプログラム(mysqlとかsqlite3)を実行中に標準入力を受け付けてるところに指定した文字列を入力したいだけなんですが
set pass=1234
mysql -u root -p
REM パスワード入力
REM ここでパスワード入力待ちになる
REM ここで変数passを入力したい

43 :
ああ、そっちか
標準入力のリダイレクトでダメなら、バッチファイルだけでは辛いかも

44 :
お前には無理

45 :
>>42
set pass=1234
echo pass|mysql -u root -p
ではどうですか?

46 :
>>45
試してみたのですが入力されませんでした

47 :
>>46
バッチファイルにパスワードを晒すぐらいなら、普通に
mysql -u root --password=1234
でやれよw

48 :
パスワードだけでなくその後にsqlも実行したいのです・・・

49 :
それならこれでいいだろ
mysql -u root -pパスワード データベース名 < hoge.sql

50 :
そうなると標準入力へはできないってことですか?

51 :
そこまで意欲的に質問する暇があったらググれ

52 :
どうもググってもbatファイルできるような記事が見当たらず・・・
別の所で聞いてきます

53 :
翻訳:ググるよ面倒なので他人を利用するぞ

54 :
>>46
ごめん環境変数は参照時は%で括るんだったorz
set pass=1234
echo %pass%|mysql -u root -p

55 :
autohotkeyとか使っとけよ
セキュリティgdgdになるけど

56 :
おまえらど素人をあんまり甚振るなよ
>>41が答えだろ
set /p pass=enter password
mysql -u root --password=%pass%

57 :
>>41-43の流れだと対話的に入力させたいわけではなく、対話型プログラムを自動化したいって意味だと思うが?
まあ>>40が不明瞭だしその後のレスも結局何がしたいのか説明できていないが

58 :
>>54
set /?
を,見ればすぐ分かることを仕込んでどんな相手なのか判断してたのかと
思って読んでたよw

59 :
どうみても釣だろ

60 :
ある時刻になったら stop ってコマンドを自動で入力させることってできる?

61 :
質問になってませんね

62 :
at

63 :
質問です。
大量にデータがあるファイル内の[開始文字列]と[終了文字列範囲内]の文字を抽出するにはどうしたらいいのでしょうか。
分かりやすく例えますと、htmlファイル内の
検索範囲開始文字列:http
から
検索範囲終了文字列:.html
までをファイルに追記書き出しすると言うほうが分かりやすいでしょうか。
通常のhtmlファイル内には複数のURLがあるので、
私が指定している方法ですと、htmlファイル内のURLが
指定ファイルに列挙される形になります。
結果のファイルサンプルです。
----------result.txt----------
http://hogehoge.com/index.html
http://hogehoge.com/hello_world.html
http://hogehoge.com/hogehoge.html
http://hogehoge.co.jp/index.html
http://hogehoge.co.jp/programming.html
http://hogehoge.co.jp/debughtml
------------------------------
外部コマンドラインツールを利用してもOKです。

64 :
そして、>>42ですが、
set pass=1234
mysql -u root -p
mysqlが パスワード入力 ルー香[ド
mysqlがユーザからのパスワード入力を待機
ここでmysqlに%pass%のデータを送信させる。(ようするにパイプ)
じゃないかなって思います。

65 :
>>63
for/?
set/?
if/?
echo/?

66 :
>>65
Split.CMD
というバッチファイルをダウンロードしてきて
やってみたのですが、指定された文字を含む行が表示されるだけで
開始文字列から終了文字列まで、などの指定で一部分を切り出す事ができませんでした。。

67 :
そのやる気のなさと知識レベルだと、教えてもらってもだめだろうから、
素直にあきらめるがよろし。

68 :
それよくあるバグだな
@ECHO OFF
REM 使用法: 切り出し.CMD 開始文字列 終了文字列 ファイル
SETLOCAL ENABLEDELAYEDEXPANSION
(FOR /F "delims=[] tokens=1*" %%0 IN ('FIND /N /V ""') DO (
IF "!FLAG!"=="1" SET FLAG=2
IF "!FLAG!"=="3" SET FLAG=4
SET "LINE=%%1"
if defined line SET "LINE=!LINE:%1=!"
if defined line IF NOT "!LINE!"=="%%1" SET FLAG=1
SET "LINE=%%1"
if defined line SET "LINE=!LINE:%2=!"
if defined line IF NOT "!LINE!"=="%%1" SET FLAG=3
IF "!FLAG!"=="1" ECHO=%%1
IF "!FLAG!"=="3" ECHO=%%1
IF "!FLAG!"=="3" GOTO :EOF
IF "!FLAG!"=="2" ECHO=%%1
)
)<%3

69 :
レスありがとうございます。
C:\TEST>切り出し-2chTEST.CMD 234 789 test.txt
1234567890
C:\TEST>
testファイルの中身です。
-----test.txt-----
HelloWorld
サンプルです
1234567890
Sample
[EOF]
---------------------------
どうも23456789と切り出ししてくれなくて困ってます。

70 :
用途が違うな

71 :
for
find
set
echo
で作れ

72 :
>>69
どっちにしろ、! を含むファイルでおかしくなるとかあるから、素直にあきらめて
vbs とかでやれよ。

73 :
console2が結構まともに動くと思ったけどヒストリなしか。
なかなかこれといったcmd, powershellがまともに動くマルチタブのターミナルが出てこないな。

74 :
>>72
はい。そうしてみます。
ありがとうございました。

75 :
指定したディレクトリ以下にあるファイル名にスペースがあったらすべてアンダーバーに置き換える
バッチお願いします

76 :
> 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
> 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
丸投げするスレじゃないぞ。
あと、個人的には...
> ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
の方がいいと思う、バッチで文字列操作は結構トラップ多いから。

77 :
pushd %1 && for %%I in ("* *") do (
set xxx="%%~I"
call ren "%%~I" %%xxx: =_%%
)

78 :
>>77
ありがとうございます
これをサブフォルダ内まで効果を及ばせるのって可能でしょうか

79 :
pushd %1 && for /r %%I in ("* *") do (
set xxx="%%~nxI"
call ren "%%~I" %%xxx: =_%%
)

80 :
/rを追加でできるんですね、覚えておきます
ありがとうございました

81 :
質問なんですがちょっと長いです、申し訳ないです
C:\a\とD:\a\内のfile.datの更新日時を比較して、C:\a\file.datのほうが新しい場合、それをD:\a\にコピーするバッチを作りました
00 for %%c in (C:\a\file.dat) do set cdate=%%~tc
01 set cdate=%cdate:~2,2%%cdate:~5,2%%cdate:~8,2%%cdate:~11,2%%cdate:~14,2%
02 for %%d in (D:\a\file.dat) do set ddate=%%~td
03 set ddate=%ddate:~2,2%%ddate:~5,2%%ddate:~8,2%%ddate:~11,2%%ddate:~14,2%
04 if %cdate% GTR %ddate% xcopy "C:\a\file.dat" "D:\a\" /e /y
00で更新日時を取得して、01で「2012/07/05 02:36」を「1207050236」に変換します
02と03も同じようなことをして、04で比較とコピーを行います

それで今回、フォルダbやcなどが増えそうなので、folders.txtに名前を書かれたフォルダ全てを扱うためのバッチを作り直したのですが、
これがよく分からんのですが思ったように動きません
作り直したと言ってもFOR文をネストしただけなのですが
00 for /f %%f in (C:\folders.txt) (
01 for %%c in (C:\%%f\file.dat) do set cdate=%%~tc
02 set cdate=%cdate:~2,2%%cdate:~5,2%%cdate:~8,2%%cdate:~11,2%%cdate:~14,2%
03 for %%d in (D:\%%f\file.dat) do set ddate=%%~td
04 set ddate=%ddate:~2,2%%ddate:~5,2%%ddate:~8,2%%ddate:~11,2%%ddate:~14,2%
05 if %cdate% GTR %ddate% xcopy "C:\%%f\file.dat" "D:\%%f\" /e /y
06 )
05を伏せる代わりにpauseを入れて観察したところ、01と03に問題があるようで、file.datを見つけられていないようでした
少し粘ったのですが無理そうなので、「他の方法」を使いたいのですが、私の知識は浅すぎて皆目検討がつきません
そこで皆さんに「他の方法」を教えていただきたいのです。どうかよろしくお願いしますm(_ _)m

82 :
robocopy

83 :
xcopy /d
setlocal

84 :
>>82
>>83
robocopyなんて便利なものがあったとは・・・目から鱗です
本当にありがとうございましたm(_ _)m

85 :
@echo off
:loop
set /a p = p + 1
ping localhost -n 1 > nul
cls
echo %p%%%
if /i "%p%"=="100" goto:f
goto :loop
:f
echo finish

86 :
調べ方がわからないのでここにたどり着きました
フォルダ内にあるファイルをアクロバットリーダーを使って印刷するバッチです
印刷は出来るのですがpdf以外のファイルがあるとエラーが出て
それが大量なのでいまいち使いづらいです
pdfのみに絞るもしくは、他のファイルは無視をする方法教えてくれませんか
〜〜〜〜〜〜〜〜〜〜〜〜
for %%i in (*) do (
START ACRORD32.EXE /n /t %%i
)
〜〜〜〜〜〜〜〜〜〜〜〜

87 :
for %%i in (*.pdf) do (
START ACRORD32.EXE /n /t %%i
)

88 :
>>87 ありがとうございます;;

89 :
自分自身がUACの管理者承認モードで
動いてることを検出できるバッチファイルの作り方おしえれ

90 :
title /?

91 :
バッチファイルで、「管理者として実行」されているか?「整合性レベル:低」か?を判定する。(その2)

92 :
titleに付けないようにできるからな

93 :
異なる拡張子のファイルを複数バッチに投げたときに
拡張子ごとのファイルパスをsetする方法を教えてください

94 :
for %%I in (%*) do echo %%~xI
あとは自分で考えろバカ

95 :
>>94
ありがとう
バカですんません

96 :
300個ほどあるtxtをファイルネーム順に20個ずつ結合したいんですが
for文中のcopyで1個ずつ足し続ける→カウント20になったら出力ファイル名変更
これもっと賢い方法あると思うんです、どう書けばいいでしょうか?

97 :
ない

98 :
for文中のrenで1個ずつファイル名末尾に識別子を足し続ける→カウント20になったら識別子変更
copy *識別子.txt group識別子.txt
これで入出力が1回ですんで時間短縮になりました

99 :
はあ?あほか なわけない

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
datファイルを共有するP2Pソフト o2on 17dat (371)
Ruby>>>>>Java (640)
Visual Studio IDE環境 (549)
Ruby 初心者スレッド Part 50 (489)
MVVMについて語ろう (384)
★初心者にVisual C++を教えるスレ★ Part38 (630)
--log9.info------------------
スーパーファミコンは過大評価[SFC] (802)
〇スーパーマリオRPG〇〔26〕 (446)
カセットビジョン/スパカセ総合スレ part3 (228)
新機動戦記ガンダムWエンドレスデュエル part2 (223)
〜ファミコンのドラゴンボールシリーズを語ろう〜2 (676)
ダンジョンマスター Lv.28 (904)
XEVIOUSを懐かしむエリア15 (310)
天外魔境シリーズを語ります! 第三十六段 (457)
魔神転生を語るスレ 〜STAGE10〜 (377)
【禿】秋葉原のレトロゲームショップ2【禿】 (616)
幻獣旅団スレ 6 (519)
半熟英雄〜冬は雪合戦だ!ういなっつぉの季節だ!〜 (424)
(英伝)英雄伝説W朱紅い雫(PC98) 2 (767)
難しいゲームを語るスレ (474)
ゲームのBGMに歌詞を付けてみるスレ 5番 (837)
昭和生まれのゲーマーは哀れだな (378)
--log55.com------------------
【理.由172】理.由CLXXII
お前ら、CPUやSSD故障したことある?314故障目
面白いor面白そうなMMOってなんかある?
ガンダムUCってZZ無しでは成立しないのに、ZZをパラレル扱いにするってどういう事?
死者の軍団とゴブリン軍団
PSO2今さらはじめるか迷う 161
FF14とDQ10を真面目に比較してみるスレ Part.75
新コマンド /dogprqb実装について101匹目