1read 100read
2012年08月プログラム74: 【.cmd】 バッチファイルスクリプト %9 【.bat】 (424) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【.cmd】 バッチファイルスクリプト %9 【.bat】 (424)
関数型プログラミング言語Haskell Part20 (632)
Metroスタイルアプリ開発について語れ (303)
【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (507)
機械語なら俺に質問しろ! (929)
Borland Developer Studio 2006 No.13 (270)

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


1 :2012/04/21 〜 最終レス :2012/12/02
拡張子が .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元 削除依頼
【モダン推奨】Perlについての質問箱 50箱目 (398)
DarkBASIC (456)
D言語 Part30 (723)
【モダン推奨】Perlについての質問箱 50箱目 (398)
バージョン管理システムについて語るスレ9 (282)
2 part forth (665)
--log9.info------------------
【人生】合唱(団)を辞めた理由【いろいろ】 (764)
Nコン課題曲反逆スレ (334)
一部分変えて曲名をおかしくするスレ #2 (571)
静岡県の合唱 (371)
※☆★新潟県の合唱★☆※ (716)
合唱用語の頭に「夜の」をつけるとエロい (341)
( ゚Д゚)<とりあえず何かを叫んでみるスレin合唱板 (274)
お前らの今まで歌った曲をあげてみてください (385)
学生指揮者総合スレッド (443)
来年のコンクール課題曲を予想するスレ (354)
【音程低いぞ】セカンドテナー【何やってんの】 (339)
おまいら、楽譜のコピーぐらい常識だよな! (796)
【勃興】千葉県の合唱5【滅亡】 (307)
中学生★合唱部の人 (201)
合唱団で彼女を作る2 (642)
   合唱で人生を狂わされた香具師    (295)
--log55.com------------------
【経済】 韓国中銀総裁「経済状況厳しい」 投資活性化策の必要性指摘 [04/26]
【韓国】文喜相議長のセクハラ騒動に他の議員「林利子議員を男と思っていた」⇒「それは結婚諦めた可哀想なオールドミスへのセクハラだ」
【金正恩氏】ウラジオ出発 予定より早く帰途に[4/26]
【文大統領】「金剛山観光の早期再開へ努力」 南北首脳会談開催を積極推進し、米朝交渉の再開につなげるという狙いもある[4/26]
【韓経/コラム】文化財復元新技術戦争=韓国…[4/26]
【国内】 日本警察、新日王即位でテロ対応態勢強化〜外国人テロリストによる攻撃の可能性も排除せず[04/26]
【FNN】陛下に謝罪要求した韓国議長にセクハラ騒動…大荒れ韓国「動物国会」[4/26]
【卓球】 日本の卓球天才・張本に勝った韓国のアン・ジェヒョン、「チョレイ」咆哮…「チョレイ」とは?[04/26]