【.cmd】 バッチファイルスクリプト %9 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/04/21(土) 22:37:58.49質問,テクニック(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/
0102デフォルトの名無しさん
2012/07/22(日) 00:36:37.15ファイルA+ファイル3=ファイルB
ファイルB+ファイル4=
…x20
みたいな事を考えてたんじゃないかと想像してみる。
0103デフォルトの名無しさん
2012/07/22(日) 01:31:00.230104デフォルトの名無しさん
2012/07/22(日) 14:47:17.27引数として受け取ったフォルダの中のファイル群に対して、
そのファイル一つ一つを引数として同じバッチを走らせることを
したいのですが、")"が含まれるものが来るとエラーが出ます。
--------------------
echo "%1" のファイルorフォルダチェック
echo %~a1|find "d"
if %ERRORLEVEL% EQU 0 (
echo "%~1" はフォルダです。
echo "%~1" の1階層下にあるファイルを対象にした処理に移ります。
for %%f in (%~1\*) do start /wait %~0 %%f
) else (
echo "%~1" はファイルです。
)
--------------------
>\* の使い方が誤っています。
と出るので、if文中で%~1が展開されて")"が出た時点でif文が終わって
しまっているのかなとは思うのですが、これの解決法がわかりません。
どうすれば回避できるでしょうか?
0105デフォルトの名無しさん
2012/07/22(日) 15:55:40.560106デフォルトの名無しさん
2012/07/22(日) 16:27:40.030107デフォルトの名無しさん
2012/07/23(月) 18:04:01.73この間「cmd /c rd /q /s c:\」みたいな(不正確ですが)コマンドを
実行するとパソコンが軽くなる・・・とかいう書き込みがあって、
それに「嘘乙」という返信を見たのですが、
これってどういう意味ですか?
0108デフォルトの名無しさん
2012/07/23(月) 18:14:00.40HDD内部全部消せってコマンドだから。
0109デフォルトの名無しさん
2012/07/23(月) 18:44:59.010110デフォルトの名無しさん
2012/07/24(火) 00:51:30.370111デフォルトの名無しさん
2012/07/24(火) 01:39:26.14そぎ落とせば軽くなるというのは間違っていないんじゃないかな。
ただ、本体まで消してしまうと空間しか残らないが。
0112デフォルトの名無しさん
2012/07/24(火) 15:44:21.40詳細を見たいんですけど、どうすればいいですか?
0113デフォルトの名無しさん
2012/07/24(火) 16:19:14.150114デフォルトの名無しさん
2012/07/24(火) 16:37:25.640115デフォルトの名無しさん
2012/07/26(木) 04:07:39.15停止したいのですが、スタートアップ直後に開始されると
プロセスが開始される前のようで、何もする事無く終了してしまいます。
繰り返しを行いたいのですが、どうすればいいのでしょうか・・・?
0116デフォルトの名無しさん
2012/07/26(木) 06:16:06.150117デフォルトの名無しさん
2012/07/26(木) 14:22:56.41どう修正したらいいのでしょうか?
@echo off
:loop
call :suba %1
shift
if exist %1 goto loop
:suba
set pname=%*
if not defined pname echo ファイル名を指定してください&pause&&goto :eof
set pname="%pname:"=%"
call :sub %pname%
echo 置換:^<%r%^> %pname% ===^> %fname%
rem if %r% equ ON if exist %dir%%fname% echo 既存ファイルがあって置換できない
ren %pname% %fname%
goto :eof
0118デフォルトの名無しさん
2012/07/26(木) 14:23:25.41:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
set fname=%fname:(=(%
set fname=%fname:)=)%
set fname=%fname:!=!%
set fname=%fname:#=#%
set fname=%fname:;=;%
set fname=%fname:$=$%
set fname=%fname:%=%%
set fname=%fname:&=&%
set fname=%fname:'=’%
set fname=%fname:===%
set fname=%fname:[=(%
set fname=%fname:]=)%
set fname=%fname:{=(%
set fname=%fname:}=)%
set fname=%fname:~=^%
set fname=%fname:~=ー%
set fname=%fname:+=+%
set fname=%fname:,=、%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof
0119デフォルトの名無しさん
2012/07/26(木) 20:01:03.770120デフォルトの名無しさん
2012/07/27(金) 01:19:56.69バッチファイルに拘らず Flexible Renamer を使う
0121117
2012/07/27(金) 15:14:18.83ありがとうございます。
バッチファイルから使えるかわからない、上にちょっと難しそうですね。
:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
set fname=%fname:(=(%
set fname=%fname:)=)%
set fname=%fname:[=(%
set fname=%fname:]=)%
set fname=%fname:{=(%
set fname=%fname:}=)%
set fname=%fname:!=!%
set fname=%fname:+=+%
set fname=%fname:$=$%
set fname=%fname:;=;%
set fname=%fname:'=’%
set fname=%fname:#=#%
set fname=%fname:,=、%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof
まではいけましたが、=%&^~がうまくできないっぽいですね。
0122デフォルトの名無しさん
2012/07/27(金) 23:32:10.40RR.exe /tr tr/=%&^~/=%&^〜/ のようにtr演算子で変換するだけで済むし。
まあ、なに使ってもいいが、面倒なリネームにはリネームソフトの方が楽ってこと。
0123デフォルトの名無しさん
2012/08/07(火) 15:49:12.33フォルダを作成させるバッチできますか?
0124デフォルトの名無しさん
2012/08/07(火) 15:53:46.440125デフォルトの名無しさん
2012/08/07(火) 18:46:49.210126デフォルトの名無しさん
2012/08/07(火) 19:06:00.050127デフォルトの名無しさん
2012/08/15(水) 21:55:14.070128デフォルトの名無しさん
2012/08/16(木) 15:04:05.98ありがとう
0129デフォルトの名無しさん
2012/08/17(金) 16:15:41.30検索したけど見つからん
0130デフォルトの名無しさん
2012/08/17(金) 17:11:02.88@MSHTA.EXE "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();" | MORE
これをバッチに書いてあるだけのソフトでそれを呼び出して以下のようにして使ってます
for /f %%a in ('JclipOut') do md %%a
0131デフォルトの名無しさん
2012/08/17(金) 20:06:25.13forfiles直後のERRORLEVELは最後に実行したコマンドでエラーになった時しか検知できないように見えます。
ループ中にコマンドを実行する度にエラーを検知したいです。
0132デフォルトの名無しさん
2012/08/17(金) 20:37:10.360133デフォルトの名無しさん
2012/08/17(金) 21:29:50.060134デフォルトの名無しさん
2012/08/17(金) 21:31:59.63ざーとらし
0135デフォルトの名無しさん
2012/08/17(金) 21:35:02.140136デフォルトの名無しさん
2012/08/18(土) 01:49:12.46輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ
「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。
■好調に見えたのはヒュンダイやサムスンだけ
韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。
これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。
韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。
そのため、輸出の不振は即韓国経済の失速に直結する。
なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に
比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。
さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す
。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。
http://headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all
0137デフォルトの名無しさん
2012/08/19(日) 02:23:09.240138デフォルトの名無しさん
2012/09/02(日) 15:02:30.16で
goto loop はバッチ パラメーターで %2 から指定出来ますが、
for でそれは可能ですか?
%%f が %1 の役目?だとわかっているのですが、どうすれば %2 以降の変数を入れることが可能でしょうか?
0139デフォルトの名無しさん
2012/09/02(日) 18:39:41.72最初をfにするのが意味不明だけど。
aから始めてabc…の方がわかりやすいし。
0140デフォルトの名無しさん
2012/09/02(日) 21:08:37.050141デフォルトの名無しさん
2012/09/03(月) 10:29:37.860142デフォルトの名無しさん
2012/09/03(月) 12:40:37.390143デフォルトの名無しさん
2012/09/03(月) 16:00:53.890144デフォルトの名無しさん
2012/09/03(月) 18:18:18.50そのやり方ではできないです;;
0145デフォルトの名無しさん
2012/09/03(月) 19:07:13.81%%i
)
0146デフォルトの名無しさん
2012/09/04(火) 02:58:26.130147デフォルトの名無しさん
2012/09/05(水) 21:58:17.34|sed -n "s/^.*Audio: \([^,]*\),.*/\1/p"\
|head -n 1`
ffmpegで動画内の音声コーデックを判別するシェルスクリプトなんだけど
これバッチに置き換えられないかな
0148デフォルトの名無しさん
2012/09/06(木) 06:48:56.56find
if
/?
0149デフォルトの名無しさん
2012/09/06(木) 14:23:27.440150デフォルトの名無しさん
2012/09/13(木) 22:38:36.16>dir *.txt
abc.txt
ab.txt
a.txt
>dir a?.txt
ab.txt
a.txt
なんで a.txt が表示されるのですか?
WinXPです
0151デフォルトの名無しさん
2012/09/13(木) 22:52:38.40http://takeno.iee.niit.ac.jp/~shige/misc/script/bat1/node13.html
0152デフォルトの名無しさん
2012/09/13(木) 23:01:16.61エクスプローラの検索だと a.txt は表示されないですね。
まぎらわしいなぁ…
0153デフォルトの名無しさん
2012/09/15(土) 15:56:44.650154デフォルトの名無しさん
2012/09/15(土) 16:10:57.570155デフォルトの名無しさん
2012/09/19(水) 17:43:59.23batに放り込んだファイルをそのフォルダから指定のフォルダに移動させる
という事をやりたいのですが、ファイル名で記入するのではなく、その放り込んだ
ファイルを対象にするにはどのように表現したら宜しいでしょうか。
0156デフォルトの名無しさん
2012/09/19(水) 19:23:55.40move %1 指定のフォルダ
の1行だけのバッチファイルにして、
そのファイルをドラッグアンドドロップでおk?
0157デフォルトの名無しさん
2012/09/19(水) 21:45:52.44ありがとうございます。上手くいきました。
もう一つ質問させて下さい。
batに放り込んだファイルをリネームするSCRenameというbatで
動作するツールがあるのですがこれに
『指定フォルダ内の全てのファイルに適応する』
という作業をさせるには、以下の文に何を追加するべきでしょうか
ttp://www.dotup.org/uploda/www.dotup.org3437779.txt
0158デフォルトの名無しさん
2012/09/20(木) 09:51:29.90バッチでWSH起動してるだけ。
0159デフォルトの名無しさん
2012/09/20(木) 11:16:12.54http://qarc.info/qa/show-11669-978.html
こっちのcscriptのパスが通ってない問題は解決した上での質問ということでいいの?
0160デフォルトの名無しさん
2012/09/21(金) 09:13:27.900161デフォルトの名無しさん
2012/09/27(木) 21:04:42.53F:\ccc\ddd\あああ.txtの内容を
F:\aaa\bbb\の直下にコピーしたい場合
バッチの内容を
xcopy /Y ../../ccc/ddd/あああ.txt
にしたのですが、無効なパラメータと言われます
やり方をご教授ください
ちなみにFドライブであるかどうかは変更が可能性あるので
フルパス指定は避けたいです
0162デフォルトの名無しさん
2012/09/27(木) 21:07:40.340163デフォルトの名無しさん
2012/09/28(金) 01:17:45.280164デフォルトの名無しさん
2012/09/28(金) 17:47:29.930165デフォルトの名無しさん
2012/09/28(金) 23:22:24.41を実行して
出力されたツリーのファイル名の右側にサイズ、更新日を表示することは可能でしょうか?
0166デフォルトの名無しさん
2012/09/29(土) 20:22:12.580167デフォルトの名無しさん
2012/09/30(日) 04:25:27.59[]や半角スペースを含むフォルダを%nに代入して使いたいのであるが
勝手に不具合起こしてうまく行かねーよカスみたいな状況になる
どうやったら解消できるかご教授頂きたい
0168デフォルトの名無しさん
2012/09/30(日) 11:11:11.160169デフォルトの名無しさん
2012/10/14(日) 12:57:11.590170デフォルトの名無しさん
2012/10/15(月) 02:44:17.38メンドクセーのはCで書いてる
0171デフォルトの名無しさん
2012/10/15(月) 21:04:38.12そういう考えで行けばCScript.exe呼ぶのは割と常套手段だと思う
0172デフォルトの名無しさん
2012/10/15(月) 23:52:40.320173デフォルトの名無しさん
2012/10/16(火) 00:36:11.060174デフォルトの名無しさん
2012/10/16(火) 01:11:22.08・配列的なもの。当然shift、unshift、pop、pushはあるよね。
・replaceは正規表現対応。先読み後読み後方参照完備。
・数値演算は正負・小数に対応。ついでによくある「Math」の関数を片っ端から実装。
・日時演算も余裕。UNIX Timeとの相互変換も簡単。
・「"」「^」「%」「)」のエスケープも気にしなくて大丈夫。
・都度if errorlevel Nなんてしなくてもtry〜catchで拾えばいいか。
ここまで書いて虚しくなったんで終わる
0175デフォルトの名無しさん
2012/10/16(火) 01:11:58.880176174
2012/10/16(火) 01:39:54.52とまでは言わない
バッチ(.bat)とVBScriptだけは勘弁してくれの方向で交渉中…orz
0177デフォルトの名無しさん
2012/10/16(火) 12:47:31.71bat内で複数のbatを処理する際に
bat1 ←このbatの処理でファイル名が変化
bat2
bat3
このような状態だとbat2に処理が渡せないのですが
bat1の段階で変化したファイル名をbat2に渡すには
bat1の末尾になんと記述すれば良いのでしょうか
0178デフォルトの名無しさん
2012/10/16(火) 15:46:17.040179デフォルトの名無しさん
2012/10/16(火) 16:12:28.02一つのコマンドプロンプトでやっている限り変数は全部持ち越しだから。
バッチ終了で初期化されたりしない。
0180デフォルトの名無しさん
2012/10/16(火) 16:21:48.00ご返答ありがとうございます。
すみません、よく意味が解らないのですが、具体的に何をすればいいのでしょうか
0181デフォルトの名無しさん
2012/10/16(火) 16:30:33.18それがわかるようなら例えば
:----bat1----
set filename1=hoge.txt
set filename2=fuga.txt
rename %filename1% %filename2%
:----ここでbat1終わり----
:----bat2-----
echo %filename2%
0182デフォルトの名無しさん
2012/10/16(火) 16:35:12.69変化後が一定の名前ではないです
ちょっと難しそうですね。
質問を変えさせて頂きたいのですが
特定フォルダ内のファイルを全て指定したbatに放り込むのと同じ処理を
batでは出来ないでしょうか
これが出来れば、間にこのbatを挟むことでファイル名の変化も
クリアできると思うのですが、如何でしょうか
0183デフォルトの名無しさん
2012/10/16(火) 16:42:53.88何も難しいことでもない。
それでも難しいっていうならアドバイスできるレベルじゃないかも…
0184デフォルトの名無しさん
2012/10/16(火) 16:58:42.05一つのbatで全部処理ができる、というのを模索中です。
0185デフォルトの名無しさん
2012/10/16(火) 17:10:36.710186デフォルトの名無しさん
2012/10/16(火) 17:23:55.230187デフォルトの名無しさん
2012/10/16(火) 17:33:28.100188デフォルトの名無しさん
2012/10/17(水) 16:51:24.75指定した容量以下のファイルを削除する、といったbatはできますでしょうか
もし可能であれば記述を教えて頂けませんか、お願い致します。
0189デフォルトの名無しさん
2012/10/17(水) 17:47:35.990190デフォルトの名無しさん
2012/10/17(水) 20:21:36.95if "%~1" == "" goto :eof
pushd "%~1" && for /f "skip=1 delims=" %%a in ('dir /a-d /o:-s /b') do del "%%a"
popd
でどう?
0191デフォルトの名無しさん
2012/10/17(水) 23:13:03.72ありがとうございます。
すみません、batで実行してみたのですが、何も起きませんでした。
こちら何か代入しないと行けないのでしょうか、宜しければ例をお願い致します。
0192デフォルトの名無しさん
2012/10/18(木) 00:06:09.56実行ファイルでもバッチでもそうだけど貰ったものを何も考えずに
単に実行してみるってのは危険だぞ。
rd /s/q位になれば見ただけで警戒するのかもしれんが…
0193デフォルトの名無しさん
2012/10/18(木) 04:14:28.13フォルダを丸ごとD&Dしたら無事動作しました。ありがとうございます。
こちらの記述ですが、もし対象フォルダが固定の時はどのように
書き換えればいいのでしょうか、C:\testとかの場合の例を教えて
頂けませんか
0194デフォルトの名無しさん
2012/10/18(木) 04:50:56.75if "C:\test" == "" goto :eof
pushd "C:\test" && for /f "skip=1 delims=" %%a in ('dir /a-d /o:-s /b') do del "%%a"
popd
多分こうですね
0195デフォルトの名無しさん
2012/10/18(木) 19:30:39.67よく解ったねw
0196デフォルトの名無しさん
2012/10/19(金) 07:33:25.39pushdもpopdもフォルダ移動に失敗(移動先フォルダがない)時でも
errorlevelは0だから、想定外のファイルをdelする危険があるよ
0197デフォルトの名無しさん
2012/10/19(金) 08:51:08.20> pushdもpopdもフォルダ移動に失敗(移動先フォルダがない)時でも
> errorlevelは0だから、
デタラメ言わない。
ちょっと試せばすぐばれる嘘は言わないように。
0198デフォルトの名無しさん
2012/10/19(金) 09:27:24.842 if not %~dp0% == %cd%\ echo ok
1は通るけど2は
> echo の使い方が誤っています。
と文句言われる。何で?
0199デフォルトの名無しさん
2012/10/19(金) 09:45:30.70%~dp0%じゃなくて%~dp0じゃね
0200デフォルトの名無しさん
2012/10/19(金) 09:49:15.880201デフォルトの名無しさん
2012/10/20(土) 15:25:50.24■ このスレッドは過去ログ倉庫に格納されています