【.cmd】 バッチファイルスクリプト %6 【.bat】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/06/25(金) 20:29:16質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.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/
0002デフォルトの名無しさん
2010/06/26(土) 01:47:00スレ立て乙
0003デフォルトの名無しさん
2010/06/28(月) 07:01:18for /f "usebackq tokens=*" %i in (`echo c:\`) do @set RESULT=%i
echo %RESULT%
c:\
とうまくいくのですがこれにパイプを入れて
for /f "usebackq tokens=*" %i in (`echo c:\ | dir`) do @set RESULT=%i
とすると、| の使い方が誤っています。とエラーになります。
echo c:\ | dirだけ打ち込むと、
dir c:\と同じ結果が得られます。
パイプ処理を用いたコマンド結果を変数に格納したいのですが、うまくいきません。
どのようにすればうまくいくか教えて下さい。
主として使うOSはvistaですが、xpでも動くようにしたいです。
0004デフォルトの名無しさん
2010/06/28(月) 07:07:00xpだとecho c:\ | dir自体うまくいかないぞ
カレントディレクトリのリストが表示されるだけ
普通にdir c:\形式に書き換えればいいんじゃねーの
00053
2010/06/28(月) 07:40:33レス恐縮です。
コマンドは、dirを説明上用いていますが、
for /f でパイプが動作しないのです。
コマンドの組み合わせが悪いのかと思い
いろいろコマンドを変えてはみたのですが。
そこをなんとかお教えいただければ。
ちなみに当方の環境では、echo c:\ | dirはうまく動きました。
xp proとメディアセンターエディションで確かめました。
0006デフォルトの名無しさん
2010/06/28(月) 09:50:46他の例は「バッチファイル エスケープ」あたりでググれば良いかと。
本筋じゃないけど、>>4 の言うように「echo c:\ | dir」はうまくいかないと思うんだが。
「dir /b < echo c:\」?
0007デフォルトの名無しさん
2010/06/28(月) 12:01:550008デフォルトの名無しさん
2010/06/28(月) 14:39:04"〜"で逃げろ
0009デフォルトの名無しさん
2010/06/29(火) 07:20:47乙
0010デフォルトの名無しさん
2010/06/29(火) 21:32:22。・゚ 。・゚ 。・゚。・ ・゚.
。・゚ 。・゚ 。・゚ 。・。
。・゚ 。・゚ 。・゚ 。・。・
。・゚ 。・゚ 。・゚ 。・。・゚
。・゚ 。・゚ 。・゚ 。・。・゚・
。・゚ 。・゚ 。・゚ 。・゚・゚・
。・゚ 。・゚ 。・゚ 。・゚・。・゚
。・゚ 。・゚ 。・゚ 。・゚・。・ ゚・
∧_,,∧ 。・゚ 。・゚ 。・゚ ・。・゚・ 。 ・゚。
( ;`・ω・ ) 。・゚ 。・゚ 。・゚。・゚・。 ・゚・。 ・゚・。・゚ ・。・゚・。・゚・ 。・゚ ・。・。・
/ o━ヽニニニニニニニニニニニニニニニニニニフ
しー-J
ID:にカーソルを合わせると不思議と>>1乙になる馬鹿にはできない魔法のコピペ
0011デフォルトの名無しさん
2010/06/30(水) 00:07:480012デフォルトの名無しさん
2010/07/09(金) 19:12:34全角スペースが含まれている場合にファイル名が分割されてしまって動きません。
半角スペースが含まれる場合はダブルクォーテーションが付加されるので問題なく処理できるのですが・・・
やはり対処法はファイル名を変更するかD&Dをしないことしかないでしょうか。
echo %1 >> log.txt を追加してやると、ファイル名が分割されてるのが確認できます。
cd /d "%~dp1"
:loop
if %1=="" goto end
rename %1 "%~n1"
shift
goto loop
:end
とりあえず
> rename "たいとる *.*" "たいとる *.*"
でまとめて半角スペースにできたのでこれでいきます。
0013デフォルトの名無しさん
2010/07/09(金) 23:41:100014デフォルトの名無しさん
2010/07/09(金) 23:47:100015デフォルトの名無しさん
2010/07/10(土) 00:17:16%~dp1を記憶しといて一致するまでのやつを連結?
ちょっと大変だなあ。
0016名無しさん@そうだ選挙に行こう
2010/07/10(土) 17:09:020017デフォルトの名無しさん
2010/07/12(月) 21:13:48for %%i in (%x: =?%) do echo "%%~i"
0018デフォルトの名無しさん
2010/07/14(水) 11:13:01拡張子関連付けして、他のプログラムから受け取ってます
0019デフォルトの名無しさん
2010/07/14(水) 14:11:350020デフォルトの名無しさん
2010/07/14(水) 14:50:18ありがとうございます。
いろいろ試行錯誤してたのが馬鹿みたいに、スマートに解決しました。
0021デフォルトの名無しさん
2010/07/15(木) 22:04:370022デフォルトの名無しさん
2010/07/16(金) 15:27:37こんなのが。バッチは向かない気がバリバリする。
0023デフォルトの名無しさん
2010/07/16(金) 15:34:22set command=%1
goto %command%
:explorer
:notepad
echo not CUI
exit /b
:cmd
:sort
echo CUI
exit /b
0024デフォルトの名無しさん
2010/07/18(日) 02:41:59@if(0)==(0) echo off
cscript.exe //NoLogo //E:JScript "%~f0" %1
echo %errorlevel%
goto :EOF
@end
var sc=new ActiveXObject("ScriptControl");
sc.Language="VBScript";
sc.AddCode("Function bin(t):bin=AscB(t)+AscB(MidB(t,2,1))*256:End Function");
function B(data){return sc.Run("bin", data);}
var ado=new ActiveXObject("ADODB.Stream");
ado.Type=1;
ado.Open();
ado.LoadFromFile(WScript.Arguments(0));
if(23117!=B(ado.Read(2))){ado.Close();WScript.Quit(-1);}//not MZ
ado.Position=ado.Size>60?60:0;
sigp=B(ado.Read(2));
ado.Position=ado.Size>sigp?sigp:0;
sig=B(ado.Read(2));
if(17744==sig){//PE
ado.Position=sigp+92;
sys=B(ado.Read(2));
ado.Close();
WScript.Quit(sys);
}else if(17742==sig){ado.Close();WScript.Quit(-2);//NE
}else ado.Close();WScript.Quit(-3);//MZ
0025デフォルトの名無しさん
2010/07/18(日) 16:29:01dumpbin.exe
0026デフォルトの名無しさん
2010/07/19(月) 03:05:320027デフォルトの名無しさん
2010/07/21(水) 23:57:28現在の日時を追記し保存する処理を考えています
できるだけ簡単にやりたいのですがcmd(コマンド)だけでできますでしょうか?
cmdのショートカットだけでできれば1番いいのですが
スレ違いでしたら、すいません。
0028デフォルトの名無しさん
2010/07/22(木) 01:04:13start "" yourcommand
0029デフォルトの名無しさん
2010/07/22(木) 03:00:58003027
2010/07/22(木) 09:57:25ありがたき幸せ
あとは余計な秒を削るのを調べてみます
yyyy/mm/dd hh:mm:ssにしたいので
003127
2010/07/22(木) 18:51:07バッチスクリプトは奥が深いですね
少し勉強してみます
003227
2010/07/22(木) 23:29:23cmd /c echo %date% %time% >> "ログ.txt"
これを実行して生成されたファイルを見ると
yyyy/mm/dd hh:mm:ss△
と表記されます(△は半角ブランク)
この半角ブランクをバッチスクリプト内で外す事が出来ずに悩んでます
何か良い方法がありますでしょうか?
また、何故半角ブランクが付加されるのでしょうか?
0033デフォルトの名無しさん
2010/07/23(金) 00:25:33cmd /c echo %date% %time%>> "ログ.txt"
リダイレクトの直前のスペースを書かない
0034デフォルトの名無しさん
2010/07/23(金) 02:44:59ドラッグ&ドロップするとファイル名の先頭に「決」をつけるように
ren %~f1 決%~n1%~x1
としたんですが、ファイル名に空白があると「コマンドの構文が誤っています」と出ます。
対処法を教えてください。
また複数ファイルドロップに対応する方法はありますでしょうか?
よろしくお願いします
0035デフォルトの名無しさん
2010/07/23(金) 04:08:22確認してない
0036デフォルトの名無しさん
2010/07/23(金) 06:26:32ありがとうございます。
確認したら出来ませんwwwでしたが、元にして完成しました。
空白もなんとか解決できそうです。
0038デフォルトの名無しさん
2010/07/23(金) 16:38:080039デフォルトの名無しさん
2010/08/08(日) 04:02:40ネットワークに接続できている場合変数に0、接続できていない場合変数に1を入れたい場合どうすればよいでしょうか?
0040デフォルトの名無しさん
2010/08/08(日) 10:09:32自分自身が持つIPが有効で接続されているかどうかということ?
ipconfigでデフォルトゲートウェイのIPアドレスを取得して
そこにpingして帰ってきた文字列をfindして分岐かな?
0041デフォルトの名無しさん
2010/08/08(日) 10:40:330042デフォルトの名無しさん
2010/08/08(日) 11:49:24netsh interface <ipv4 or ipv6> show ipaddress name=<インデックス or 名前>
0043デフォルトの名無しさん
2010/08/09(月) 05:05:09ありがとうございます。
できました
この方法で分岐しようと思います。
>>41
ありがとうございます。
その方法だと場合によって無効でもerrorlevelに0が入ってしまうんです・・・。
オプションでできるかもしれませんがわかりませんでした。
>>42
ありがとうございます。
一番スマートそうですが
僕のレベルだと理解できませんでした・・・。
0044デフォルトの名無しさん
2010/08/09(月) 16:32:19のようにTESTフォルダ下のフォルダ数を変数に格納したいのですがわかりません
お願いします。
for /D %%f in (*) do set /a i=i+1
0045デフォルトの名無しさん
2010/08/09(月) 18:29:50forのヘルプに書いてあったwww
0046デフォルトの名無しさん
2010/08/09(月) 23:03:45解決しました。
CD TEST
FOR /F "DELIMS=" %%A IN ('DIR /B ^| FIND /C /V ""') DO SET COUNT=%%A
0047デフォルトの名無しさん
2010/08/13(金) 07:25:55可能な場合、どのような方法があるでしょうか。
バッチファイル向きの作業でないのは十分承知しているのですが…。
0048デフォルトの名無しさん
2010/08/13(金) 11:45:59一年の第何週目であるかを求めるプログラムの戻り値を利用する
0049デフォルトの名無しさん
2010/08/13(金) 17:12:17去年の12月28日〜31日は今年の第1週目には含まれない
1月1日と1月2日までが第1週目
1月3日から第2週目
ってことでいいの?
005047
2010/08/13(金) 22:19:25>>48
そうですね。今回は OS 標準の機能でできればと思って質問しました。
>>49
1 月 1 日を含む週に 4 日以上ある場合、第 1 週になるそうです。
ですので今年は 1 月 3 日の週が第 1 週みたいです。
0051デフォルトの名無しさん
2010/08/14(土) 00:59:160052デフォルトの名無しさん
2010/08/14(土) 05:13:520053デフォルトの名無しさん
2010/08/14(土) 20:26:25@echo off
set y=%date:~0,4%
set /a m=1%date:~5,2%-100
set /a d=1%date:~8,2%-100
call :z %y% %m% %d%
set /a d-=zwd
set /a d+=13
call :md %y% %m% %d%
set /a c=md/7
call :z %y% 1 1
if %zwd% geq 4 set /a c-=1
echo %c%
goto :eof
:md
set sd=000000 31 59 90120151181212243273304334
set /a md=%2*3
call echo %%sd:~%md%,3%%+%3
call set /a md=%%sd:~%md%,3%%+%3
if %1 geq 3 set /a md+=(!(%1%%4)^^!(%1%%100)^^!(%1%%400))
goto :eof
:z
set /a zy=%1,zm=%2,zd=%3
if %zm% leq 2 set /a zy-=1,zm+=12
set /a zwd=(zy+zy/4-zy/100+zy/400+(13*zm+8)/5+zd)%%7
goto :eof
0054デフォルトの名無しさん
2010/08/14(土) 21:38:03>>52
ステップ数少ないなぁ
:md とか :z とか何の処理をしてるんだろ?
0055デフォルトの名無しさん
2010/08/14(土) 22:03:420056デフォルトの名無しさん
2010/08/14(土) 22:18:120057デフォルトの名無しさん
2010/08/14(土) 23:40:20有効なのは2000〜2099年までみたい?
何処いじればいいのか分からないけど
>>55
ややや、車輪の再開発かや…
0058デフォルトの名無しさん
2010/08/14(土) 23:50:050059デフォルトの名無しさん
2010/08/15(日) 17:20:15英語OSだと通常 mm-dd-yy とか
0060デフォルトの名無しさん
2010/08/15(日) 21:12:450061デフォルトの名無しさん
2010/08/16(月) 10:40:120062デフォルトの名無しさん
2010/08/16(月) 11:46:570063デフォルトの名無しさん
2010/08/16(月) 12:05:420064デフォルトの名無しさん
2010/08/17(火) 07:47:09う〜ん、いろいろ調べてみたけど難しい・・・
0065デフォルトの名無しさん
2010/08/17(火) 08:57:06if "%notepc%"=="1"
0066デフォルトの名無しさん
2010/08/17(火) 09:01:390067デフォルトの名無しさん
2010/08/17(火) 09:04:030068デフォルトの名無しさん
2010/08/17(火) 09:05:020069デフォルトの名無しさん
2010/08/17(火) 12:53:080070デフォルトの名無しさん
2010/08/17(火) 21:30:06assoc .scm=GaucheScript
ftype GaucheScript=gosh "%1" %*
で、
hoge.scm 1 2 3
てな感じでコマンド入力すると
gosh hoge.scm "1 2 3"
であるかのように展開されるみたい。 もしやと思って %* のかわりに %~* と書いてみたりもしたけど駄目だった。
どうにかして残りの引数をひとまとまりにしないような書き方ってある?
0071デフォルトの名無しさん
2010/08/18(水) 20:45:09C:\>type hoge.scm
(define (main args) (for-each print args))
C:\>hoge.scm 1 2 3
C:\hoge.scm
1
2
3
C:\>hoge.scm "1 2 3"
C:\hoge.scm
1 2 3
007270
2010/08/18(水) 21:44:44どこか変な設定入ってんのかな。
007370
2010/08/31(火) 03:04:02レジストリか何かで設定が変わるんでしょうか?
007470
2010/08/31(火) 03:14:350075デフォルトの名無しさん
2010/09/01(水) 22:55:42計算終了後に計算結果をftpで転送するbatを作ろうとしてるのですが、
二つほどうまくいきません。
一つはtelnet終了の判断が付かないことです。センドキーを使用していますが
exitでtelnetから抜けた後は次のコマンドに移らないので、pauseで次のコマンドに
移るようにしています。
もう一つは、計算結果をgetする際に、ファイルのあるフォルダ指定がうまく行きません。
パス名取得の%^p1を使用すると、”\任意のフォルダ\"の様に”\”で挟みますが
ftpでは右側に"\"があると認識しないようで、”\任意のフォルダ"にする必要が
あるため、一旦別の決め打ちしたフォルダにgetした後で、任意のフォルダへ
ムーブする方法を取っていますが、何か方法はないでしょうか?
0076デフォルトの名無しさん
2010/09/02(木) 00:10:240077デフォルトの名無しさん
2010/09/05(日) 23:26:22で拡張子、リネームしてコピーしようとしているのですが、
コマンドプロンプト画面で
C:\test2.log は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)?
と聞かれるのですが、それをbatで自動化にできないでしょうか?
0078デフォルトの名無しさん
2010/09/05(日) 23:33:020079デフォルトの名無しさん
2010/09/05(日) 23:34:010080デフォルトの名無しさん
2010/09/06(月) 14:53:22デスクトップとノートの能力的な違いって何があるかな。持ち運び以外の点で。
性能的にはデスクトップノートみたいな高性能のものもあるわけだし、
大容量UPSとか付けたらデスクトップでもバッテリーがあるのと一緒だし。
0081デフォルトの名無しさん
2010/09/06(月) 14:55:570082デフォルトの名無しさん
2010/09/06(月) 14:56:04単一ファイルなのにcopyを使わない理由は?
0083デフォルトの名無しさん
2010/09/06(月) 20:39:40デスクトップPCにUPSが噛まされてたらバッテリー可否じゃ判定ミスるから
スピーカー設定がラップトップかデスクトップで見るとかは?
流石にデスクトップPCでラップトップに設定してる奴はいないだろうし
サウンドドライバないPCは知らん
しかしノートPCとデスクトップPCの判定って考えてみると奥が深いな
PC機種名が取れれば予め作成した膨大なテーブルで検索すれば…
…自作PCで積むな…
ま、完璧に判定するのは無理っぽいね
0084デフォルトの名無しさん
2010/09/07(火) 06:32:14DOS on Dope: The last MVC web framework you'll ever need
http://www.secretgeek.net/dod_intro.asp
Dos on Dope
http://dod.codeplex.com/
0085デフォルトの名無しさん
2010/09/07(火) 18:42:47レス遅れてすみません。
説明が欠けていました。
隠しファイルをコピーしたいんです。
0086デフォルトの名無しさん
2010/09/07(火) 23:00:45for /f "delims=" %%i in (list.txt) do (
for /F "tokens=*" %%s in ('dsquery group -name %%i') do (
〜
)
'dsquery group -name %%i'の箇所がコマンドとして認識されません。
コマンドに引数渡すのって無理でしょうか?
0087デフォルトの名無しさん
2010/09/07(火) 23:16:18vimでctrl +uで同じキーバインドにすることができますか?
vimの「dd」だと「ctrl + u」よりも面倒くさい気がするので
0088デフォルトの名無しさん
2010/09/07(火) 23:34:16普通に出来るが?
list.txtの内容とコマンドがおかしいんじゃね?
0089デフォルトの名無しさん
2010/09/07(火) 23:46:090090デフォルトの名無しさん
2010/09/12(日) 03:31:46for /f "delims=" %%i in ('type list.txt') do (
0091デフォルトの名無しさん
2010/09/19(日) 15:42:44ファイル名はいいので、ファイル数だけ取得できればよいです。
0092デフォルトの名無しさん
2010/09/19(日) 16:44:130093デフォルトの名無しさん
2010/09/19(日) 16:46:57---↑無理矢理版 ↓ありがち版
::count.bat
@echo off
setlocal
set counter=0
for %%q in ("*.%1") do set /A counter=counter+1
echo %counter%
0094デフォルトの名無しさん
2010/09/19(日) 22:17:40ありがとうございます。ありがち版を使わせていただきます。
もうひとつ相談なのですが、
あるディレクトリにあるファイル名をテキストに書き込みたいと思っています。
ディレクトリ内には
abc_1.txt
abc_2.txt
・
・
・
といったファイルがあり、出力する1ファイルに3ファイル名ずつ書き込みたいです。
(1.txtにはabc_1.txt〜abc_3.txt、2.txtにはabc_4.txt〜abc_6.txt)
わかりにくい説明かもしれませんが、よろしくお願いします。
0095デフォルトの名無しさん
2010/09/19(日) 22:45:08set c=3
for /f %%i in ('dir /b') do (
set /a n=c/3
set /a c+=1
echo %%i>>!n!.txt
)
0096デフォルトの名無しさん
2010/09/19(日) 23:09:29ありがとうございます。
しかし、実行すると
「2010/09/19」
のように日付が書き込まれてしまいます。
ファイル名を取得する方法はないでしょうか?
よろしくおねがいします。
0097デフォルトの名無しさん
2010/09/19(日) 23:18:26ファイル名にスペースが含まれるものなら
for /f "delims=" %%i in ('dir /b') do (
0098デフォルトの名無しさん
2010/09/19(日) 23:42:02指摘ありがとうございます。
dirの後にパスを指定するときに/bを消してしまっていました。
ひとつ質問したいのですが、
setlocal enableextensions enabledelayedexpansion
の行はどんな意味があるのでしょうか?
0099デフォルトの名無しさん
2010/09/19(日) 23:45:09http://www.google.co.jp/search?q=setlocal+enableextensions+enabledelayedexpansion
0100デフォルトの名無しさん
2010/09/20(月) 01:11:220101デフォルトの名無しさん
2010/09/20(月) 13:32:18abc_1.txt,abc_4.txt,abc_7.txt・・・の時は
「ファイル名 1ファイル目」
abc_2.txt,abc_5.txt,abc_8.txt・・・の時は
「ファイル名 2ファイル目」
abc_3.txt,abc_6.txt,abc_9.txt・・・の時は
「ファイル名 3ファイル目」
という風にファイル名の後に特定の文字を記述することはできないでしょうか?
if文を使えばいいと思ったのですが、考えてもできませんでした。
わかる方いたら教えてください。よろしくお願いします。
0102デフォルトの名無しさん
2010/09/20(月) 13:55:450104デフォルトの名無しさん
2010/09/20(月) 15:03:370105デフォルトの名無しさん
2010/09/20(月) 15:26:01そんなもの調べてる段階でお前にゃ無理。
0106デフォルトの名無しさん
2010/09/20(月) 15:27:46set c=3
set x=0
for /f %%i in ('dir /b C:\RS3XDW\temp') do (
set /a n=c/3
set /a c+=1
echo %%i -X%x% >> C:\RS3XDW\merge\m!n!.txt
set /a x+=2000
)
ファイル名の後に-X0、-X2000、-X4000をそれぞれつけたいのですが、上記のバッチではうまくいきません。
原因がわかる方いたら教えてください。
0107デフォルトの名無しさん
2010/09/20(月) 15:29:41具体的には全て-X0になってしまいます。
0108デフォルトの名無しさん
2010/09/20(月) 15:29:420109デフォルトの名無しさん
2010/09/20(月) 15:31:44> setlocal enableextensions enabledelayedexpansion
> の行はどんな意味があるのでしょうか?
で>>99にググれと言われてググってないのがモロわかり。
上手くいかないのはお前が上記文の意味を理解していないから。
それがバッチによく現れてるわ。
0110デフォルトの名無しさん
2010/09/20(月) 15:34:19調べてもわからなかったので、質問してみたのですが。。。
0111デフォルトの名無しさん
2010/09/20(月) 16:18:510112デフォルトの名無しさん
2010/09/20(月) 16:40:07あまりスマートではないかもしれませんが、とりあえずやりたいことはできました。
アドバイスありがとうございました。
setlocal enableextensions enabledelayedexpansion
set c=3
set x=0
for /f %%i in ('dir /b C:\RS3XDW\temp') do (
set /a n=c/3
set /a c+=1
echo %%i -X!x! >> C:\RS3XDW\merge\m!n!.txt
set /a x+=2000
set /a k=c%%3
if "!k!" == "0" (set /a x=0)
)
0113デフォルトの名無しさん
2010/09/23(木) 01:56:100114デフォルトの名無しさん
2010/09/25(土) 17:39:01結婚した女は夫の父・祖父らとも性交をするのである。
現代にもこの風習は残っていると言われている。
(実態を調査するのは非常に困難であるが。)
さて、男が息子・孫の嫁と性交することを「ねぐる」という。
これがネグリジェの語源であることはあまり知られていない。
by 民明書房
0115デフォルトの名無しさん
2010/09/25(土) 20:49:52さらに好きなように操作するにはどうしたらいいですか?
バッチファイルでGIMPを起動したんですが
画像が
"C:\Program Files\gimp-painter-\gimp\bin\gimp-2.6.exe" %~n1\test\data\background.png
で開けなかったので
どうしたらいいんでしょうか?
0116デフォルトの名無しさん
2010/09/25(土) 21:37:02UWSCとかのアプリケーション操縦ソフトを使う。かなりややこしくて不確かで不安定だけどね。
エラーを考慮しない記述でこれだけ必要。
ID = EXEC( "C:\Program Files\gimp-painter-\gimp\bin\gimp-2.6.exe" )
ClkItem( ID, "ファイル\開く", CLK_MENU )
DlgID = GetID( "ファイルを開く", "#32770", -1 )
SendSTR( DlgID, "c:\test\data\background.png" )
ClkItem( DlgID, "開く", CLK_BTN )
ていうか、開くファイルのパスは正しいの?
echo %~n1\test\data\background.png でチェックしてみたら?
0117デフォルトの名無しさん
2010/09/25(土) 22:03:55%~n1ってことはそのバッチに何かファイルをドロップしたりしてるの?
バッチ単体で動かして動かないっていう間抜けな話のような気がするんだが…
0118デフォルトの名無しさん
2010/09/25(土) 22:28:40一応詳細を書きますと
フリーソフトのお絵かきソフトの保存ファイルの拡張子を変えて開いて
GIMPで編集したいというものです。
copy %1 %~n1.zip
%~n1.zip
cd C:\Program Files\gimp-painter-\gimp\bin
gimp-2.6.exe "%~dnp1\data\background.png"
こんな感じでファイルが開けました。
アドヴァイスありがとうございます
うwsc調べてみます。
0119デフォルトの名無しさん
2010/09/26(日) 00:49:30BTN(LEFT,CLICK,1149,377,219)
KBD(VK_ALT,DOWN,40)
KBD(VK_F,CLICK,10)
KBD(VK_ALT,UP,40)
KBD(VK_E,CLICK,40)
KBD(VK_test,CLICK,40)
すいませんTest.pngをまとめて入力するにはどうしたらいいですか
・・・もうだめぽorz
0120デフォルトの名無しさん
2010/09/26(日) 02:30:03UWSCはスレチなのであっちに書いておきました。
ttp://hibari.2ch.net/test/read.cgi/software/1260304053/803
> さらに好きなように操作するには
とあったのでUWSCをお勧めしたんですが、
ファイルを開くだけなら起動時の引数で渡せば済むし、その方が確実ですよ。
また、もしUWSCでコントロールするならgimpではなく、アクセサリのペイントなど
Windows標準コントロールを使ったソフトの方が操作が簡単で確実になります。
>>116のようにメニューやボタンの名称を使って、より簡単確実にコントロールができるからです。
gimpは名称ではコントロールできませんでした。
あと、アプリケーションの自動操縦は
一つのことをするごとにいろいろなことを調べないといけないので、
先にどんなことをするのか、それにはどんなことが必要なのかを聞いた方がいいですよ。
手をつける前に。
>>116はWindows標準アプリを想定したもので
gimpを操縦できるか確かめたわけではなかったんですが、
実際には全然使えないコードでした。
0121デフォルトの名無しさん
2010/09/26(日) 02:32:35なんかスキル不足で
文章データから必要な数値だけ
取り込むとか色々無理っぽかったんで…
質問取り消します
なんかもうどうしかけを作るとかは考えつくんですけど
今から新しくプログラム覚えるのは無理っぽいです。
昔のCの基本ぐらいしかわかんないです
お騒がせして申し訳ありません
0122デフォルトの名無しさん
2010/09/26(日) 02:42:20もうちょっと頑張ってみます。
アドバイス有り難うございます!
0123118
2010/09/26(日) 11:19:53コマンドプロンプトの画面が出っぱなしになって次の
>マークが表示されず次の命令に進みません。
これはどうすればいいですか?
0124118
2010/09/26(日) 11:59:07これは何を検索すればいいですか
cd C:\Windows\System32
notepad.exe "%~dnp1\stack.txt"
適当にメモ帳を起動したらやはりメモ帳を手動で終了させないと
次の命令に進まない事が分かりましたOTL
こ、これは・・・??
コマンドプロンプト メモ帳で検索したんですがいいヒントが見つかりませんOTL
0125デフォルトの名無しさん
2010/09/26(日) 12:00:56start notepad.exe "%~dnp1\stack.txt"
0126デフォルトの名無しさん
2010/09/26(日) 12:26:28あ、ありがとうございます!!!
0127デフォルトの名無しさん
2010/09/26(日) 17:02:57%1に入っている情報をhozon.txtに書き込んで置く方法はないでしょうか?
.txtの中身の検索や比較はできるんですけど
書き込むにはどうしたらよいのでしょうか?
バッチファイルにD&Dしたファイルの名前と位置情報を得て
UWSCに持って行きたいのです。
0128デフォルトの名無しさん
2010/09/26(日) 17:41:10そこに内容をいれられませんOTL
dir>list.txtではテキストファイルに内容を保存できたのですが・・・
どうしたらよいのでしょうか?
cd C:\Windows\System32
start notepad.exe "%~dnp1\stack.xml"
cd %~dnp1
%~dnp1>list.txt
0129デフォルトの名無しさん
2010/09/26(日) 18:25:00ヘルプのリダイレクト演算子を参照のこと
echo %1>>hozon.txt
0130デフォルトの名無しさん
2010/09/26(日) 18:34:18%~dnp1という書き方は凄く違和感あるな…というのはさておき、
これはドロップされたファイルの部分を除いた部分という意味だが
そんなディレクトリが最初からあるの?
それに通常システムディレクトリにpathが通ってるから
> cd C:\Windows\System32
これは要らんし
> cd %~dnp1
これも何のためにカレントディレクトリを移動するのかわからん。
そもそも存在してるのかって疑問も前述の通り。
第一%~dpn1に入ってるのはコマンドじゃないから
notepad起動したあとエラー吐いて終わるだけじゃね?
0131デフォルトの名無しさん
2010/09/26(日) 18:36:15もしかして
> こんな感じでテキストファイルを自動で作るまでは出来たのですが
ファイルを自動で作れたってこの0バイトのファイルの事か?
0132デフォルトの名無しさん
2010/09/26(日) 18:44:05そうですね。別々に作ってきたので
ディレクトリ移動とか変ですよね。
紛らわしくてごめんなさい。
そーですねゼロバイトのファイルですね・・・OTL
cd>hozon.txtとか無理やりやってました。
うぉぉおおおechoですかありがとうございます!!!
HELP>help.txtしてきます!!
0133デフォルトの名無しさん
2010/09/26(日) 19:07:56C:\WINDOWS\hh.exe ntcmds.chm::/ntcmds.htm
これでコマンドラインのヘルプがまとめて見られるぞ。
0134132
2010/09/26(日) 21:35:260135デフォルトの名無しさん
2010/09/26(日) 21:45:04本ぐらい買って勉強してから出直せ
0136デフォルトの名無しさん
2010/09/26(日) 21:53:470137デフォルトの名無しさん
2010/09/27(月) 02:19:48バッチで何かプログラムを開いた後、
起動完了した事を確認する方法って無いですよね。
パソコンによって起動時間は違うし
ポーズコマンドでも入れておいて
見た目で起動しおわったか
判断してもらって
なんかキーを押してもらって次のコマンドに行く
ぐらいだよね?
0138デフォルトの名無しさん
2010/09/27(月) 02:41:25ttp://www7a.biglobe.ne.jp/~tsuneoka/win32sub2/9.html
とか参照
0139デフォルトの名無しさん
2010/09/27(月) 05:12:320140デフォルトの名無しさん
2010/09/27(月) 05:14:160141デフォルトの名無しさん
2010/09/28(火) 00:41:26色々手立てはあるのですね。
0142デフォルトの名無しさん
2010/09/28(火) 12:05:10同じサブルーチンが複数のバッチにコピペされてて管理が面倒なんですが。
copy main.bat+sub.bat>cat.bat
call cat.bat
みたいにするしかないでしょうか?
0143デフォルトの名無しさん
2010/09/28(火) 12:21:53type sub.bat>>"%~0"
call :hoge
del "%~0"&ren "backup.bat" "%~0"
自分自身にくっつけるのってなんだか不安なんですが
一応動く…
なんかもっとスマートな方法ってないですかね
0144デフォルトの名無しさん
2010/09/28(火) 12:39:390145デフォルトの名無しさん
2010/09/28(火) 13:20:48何回読んでもそんなことが出来るような事は書いていないですが…
--- main.bat ---
call :hoge
--------------
--- sub.bat ---
goto :eof
:fuga
echo fuga
goto eof
:hoge
echo hoge
goto :eof
-------------
mainを実行したらsubのhogeが実行されるような事をしたいんですがね。
一つのサブルーチン毎に一つのファイルにしろって事かな?
0146デフォルトの名無しさん
2010/09/28(火) 14:48:380147146
2010/09/28(火) 14:54:16DIRで見る事が出来るサイズじゃなくて
プロパティの詳細で見れる50×70ピクセルとかいう大きさの事ね
0148デフォルトの名無しさん
2010/09/28(火) 15:53:340149デフォルトの名無しさん
2010/09/28(火) 16:07:52どうもすいません
0150デフォルトの名無しさん
2010/09/28(火) 16:22:050151デフォルトの名無しさん
2010/09/28(火) 16:34:220152デフォルトの名無しさん
2010/09/29(水) 03:15:35クリップボードの内容をキー操作でコマンドプロンプトにペーストするには
どうしたらいいですか?
とりあえず画面上では右クリックするとメニューが出て来て張り付けをクリックするか
pを押すと出来ますが
マウスを使わずに張り付ける方法が分かりません。
0153デフォルトの名無しさん
2010/09/29(水) 03:35:54Alt+スペース → 編集(E) → 貼り付け(P)
0154デフォルトの名無しさん
2010/09/29(水) 07:11:290155デフォルトの名無しさん
2010/09/29(水) 19:06:29abc.txtをコピーしたいんですが
copy abc.txt %~dp1
を実行してみるとコマンドプロンプトでは最後に¥マークが付いて
うまくコピーされません
どうしたらコピーされますか?
0156デフォルトの名無しさん
2010/09/29(水) 19:23:200157デフォルトの名無しさん
2010/09/29(水) 20:42:200158デフォルトの名無しさん
2010/09/30(木) 00:26:39http://www.dotup.org/uploda/www.dotup.org1173513.zip.html
フォトショのpsdファイルからMypaintの.oraに変換するプログラム。
残念ながら一部手動でかなりのむりくり・・・。OTL
えーと、zipに圧縮するところどうしてもうまくいかなかった。
バッチファイルからzipに圧縮ってどうしたらいいのん?
0159デフォルトの名無しさん
2010/09/30(木) 01:33:53zipはzip拾ってくるしかない
0160デフォルトの名無しさん
2010/09/30(木) 11:37:53ZIP.VBSっていうのを使ってみたんだけど
うまくいかない。
コマンドが間違ってますか?
CScript.exe MakeExZIP.VBS assyuku.zip %~dp0assyuku
というふうに入力後zipファイルは出来るんだけど
その後の処理がうまくいかないので
きちんとzipフィルが出来てないのかな・・・。
0161デフォルトの名無しさん
2010/09/30(木) 12:28:590162デフォルトの名無しさん
2010/09/30(木) 17:04:590163デフォルトの名無しさん
2010/09/30(木) 17:46:01最後が\でも全然問題ないだろ。
0164デフォルトの名無しさん
2010/10/01(金) 02:17:420165デフォルトの名無しさん
2010/10/10(日) 12:17:47どうしてもうまくいきません。
中段にある、javaで書かれたbatでよびだしたいのですが、、、
javaでかかれたものは記述じたい何か変更しなくては駄目なのでしょうか?
お教えいただけませんでしょうか?
http://d.hatena.ne.jp/tarumnk/20091108/1257671905
0166デフォルトの名無しさん
2010/10/10(日) 12:25:380167デフォルトの名無しさん
2010/10/14(木) 21:18:29ちゃんと最初にsetlocal、exitの直前にendlocalを記述しているのに・・・
でもプログラムの途中で無理やり終わらせるとちゃんと変数が消えるんです
なぜでしょうか?どなたか教えてください
遅延展開onにしたらこんな症状になるってわけではないですよね
0168デフォルトの名無しさん
2010/10/15(金) 01:06:200169デフォルトの名無しさん
2010/10/15(金) 01:29:460170デフォルトの名無しさん
2010/10/15(金) 02:15:170171デフォルトの名無しさん
2010/10/15(金) 02:22:240172デフォルトの名無しさん
2010/10/15(金) 02:36:230173デフォルトの名無しさん
2010/10/15(金) 02:42:14setlocalの意味を知らないみたいね?
0174デフォルトの名無しさん
2010/10/15(金) 02:59:49「消えないってのが想像付かないけど、残ってるなら上書きで消してしまえばいいじゃん」
ってことを言いたいだけなのでは?
0175デフォルトの名無しさん
2010/10/15(金) 05:46:590176デフォルトの名無しさん
2010/10/15(金) 05:47:42endlocal&(〜
0177デフォルトの名無しさん
2010/10/15(金) 06:26:220178デフォルトの名無しさん
2010/10/15(金) 06:37:59とかやっとけば
ディレクトリははねてもいいしエラーになるからそのままでもいい
0179デフォルトの名無しさん
2010/10/15(金) 06:47:07>dir /a-d-h-s *.
で絞り込むのが安全
0180デフォルトの名無しさん
2010/10/15(金) 15:48:44setlocalの意味を知らないみたいね?
set a=aaa
setlocal
set a=bbb
endlocal
echo %a%
0181デフォルトの名無しさん
2010/10/15(金) 16:49:36173は消えないというのが想像付かないって言ってるんだから
意味は知ってるだろ。
俺も想像は付かんがね。
意図的に残すなら
set a=aaa
setlocal
set a=bbb
endlocal&set a=%a%
echo %a%
みたいにやると残るんだが、仮にバグなり意図せずこんな書き方になってたりとして
事後策として消せばって言ってるんだろ。
0182デフォルトの名無しさん
2010/10/16(土) 00:27:51先頭で余分にsetlocalしとけばよいよ
0183173
2010/10/16(土) 03:15:54ある条件でstartコマンドで自身を呼んでサブルーチンを実行させていたのですが、
皆さんの言うとおりそのサブルーチンを終わらせる所にendlocalを記述していませんでした。
startコマンドでサブルーチンを呼んだ時に変数を引き継いでいたのを忘れてました。
どうりでメインルーチンにendlocal記述しても変数が残るわけです。
途中でバッチを強制終了したら変数が残らなかった原因は、バッチを強制終了させた段階はサブルーチンを呼んでいなかった段階だからでした。
一応ソース丸あげしておきます。
念のため最初に全ての変数に空の値入れて消してます。
http://codepad.org/szulekk2
0184167
2010/10/16(土) 03:17:550185167
2010/10/16(土) 03:24:32codepadのソースのラベルのnexistの一行前にgoto existを入れるのを忘れていました。起動する場合はご注意ください
0186デフォルトの名無しさん
2010/10/16(土) 03:37:360187デフォルトの名無しさん
2010/10/16(土) 04:01:560188デフォルトの名無しさん
2010/10/16(土) 13:34:590189167
2010/10/16(土) 14:32:52コマンドが動いている時にキーを押させてコマンドを終了させる為には
start使ってバッチスクリプトを2つ起動させ、1つにコマンドを制御させるバッチを記述する必要があったのです。
callだと制御が戻ってくるまでコマンドを進めることができないと考えまして・・・
0190デフォルトの名無しさん
2010/10/16(土) 15:21:180192デフォルトの名無しさん
2010/10/16(土) 17:46:050193デフォルトの名無しさん
2010/10/16(土) 18:04:470194デフォルトの名無しさん
2010/10/16(土) 18:07:210195デフォルトの名無しさん
2010/10/16(土) 19:10:210196デフォルトの名無しさん
2010/10/16(土) 20:05:09cmd /c img_viewer.exe my_image.png
cmd /c my_image.png # 関連付け実行?
cmd /c start my_image.png # 関連付け実行?
のように起動すると、起動したimg_viewer.exeが前面に来て、さらにフォーカスをうばってしまいます
0197デフォルトの名無しさん
2010/10/16(土) 20:12:250198デフォルトの名無しさん
2010/10/16(土) 20:45:39試してみたのですが、最小化して起動されてしまいました
ウインドウは表示はするけど、フォーカスをうばわないということがしたいのですが、
cmd単体では無理そうですかね・・・
0199デフォルトの名無しさん
2010/10/16(土) 20:49:070200デフォルトの名無しさん
2010/10/16(土) 21:01:53アクティブウィンドウを記憶しておいてアクティブにするとかか
cmdの標準的な機能じゃ無理な気がする
0201デフォルトの名無しさん
2010/10/16(土) 21:29:54>>199
[InternetShortcut]
URL=c:\image\my_image.png
みたいに書いてstartで実行してみましたが、ビューアーは前面に出てしまいました
関連付けで立ち上がるアプリケーション側に依存するのかもしれませんね
>>200
やはり無理ですかね。
AHKなりなんなり併用してみます。
0202デフォルトの名無しさん
2010/10/16(土) 21:38:06URL=c:\image\my_image.png
ShowCommand=4 か 8
0203196
2010/10/17(日) 05:55:10・関連付け実行するビューアー側の多重起動を防止しついでにアクティブにするオプションを無効化
その上で
・>>202 のように ShowCommand=4 か 8で指定して起動
・もしくは、Cygwinのcygstart.exeで cygstart.exe --showna my_image.png
(--shownaの代わりに--shownoactivateでも可)
感謝感激!!ありがとうございました
■以下、チラシの裏
InternetShortcutのShowCommandはAPIのShellExecuteに対応しているんですね。
ネットで調べても一部しか数値が載っていないので何かと思っていましたが、
ふとcygstartを思い出して、-vオプションをつけて試すとShellExecuteを実行していることが表示できるので、
ようやくShowCommandの数値の意味がわかりました。
ShellExecute 関数
http://msdn.microsoft.com/ja-jp/library/cc422072.aspx
その後、関連付けられた画像ビューアーではこれらのオプションが効かずフォーカスを奪うことに気づき、
他のビューアーで試した所、ちゃんと非アクティブになりフォーカスを奪わず問題なしでした。
ここで、ようやく画像ビュアー側の問題もあることに気づきました。
それとこのスレの範疇から外れますが、CygwinのcygstartはShellExecute相当ができてstartよりも便利ですね。
スラッシュ区切りのcygwinのパスも考慮してくれますし
0204196
2010/10/17(日) 08:39:57wshでもできますね
WScript.CreateObject("WScript.Shell").Run("my_image.png", 4, true);
ただし、既定の標準の関連付けではなく、"open"何故かopenの方で開かれてしまうみたいです
あと、batファイルだけなら、
rundll32.exe shell32.dll,ShellExecute でいけるような気もしますが、その後の引数はどういう書式でかけばいいかわからんです。
0205デフォルトの名無しさん
2010/10/17(日) 08:47:580206デフォルトの名無しさん
2010/10/17(日) 14:04:390207デフォルトの名無しさん
2010/10/17(日) 15:37:220208デフォルトの名無しさん
2010/10/17(日) 16:35:100209デフォルトの名無しさん
2010/10/18(月) 15:52:260210デフォルトの名無しさん
2010/10/18(月) 16:05:59echo %errorlevel%
は常に0だから無理
>>208
commited-memory ratio
ってなんだろね 書き込みデータのあるメモリってことか
0211デフォルトの名無しさん
2010/10/18(月) 16:06:34sleep.exeはMSのツールじゃない罠。
色々な所が色々なsleep.exe出してるからどのsleep.exeかわからん。
0212デフォルトの名無しさん
2010/10/18(月) 16:38:11> sleep.exeはMSのツールじゃない罠。
由緒正しいのってなら、リソースキットの sleep.exe じゃね?
0213デフォルトの名無しさん
2010/10/18(月) 17:03:02>
>WScript.CreateObject("WScript.Shell").Run("my_image.png", 4, true);
バッチファイルでもできる
mshta.exe vbscript:close(CreateObject("WScript.Shell").Run("my_image.png",4,True))
> ただし、既定の標準の関連付けではなく、"open"何故かopenの方で開かれてしまうみたいです
それがrunの仕様
> あと、batファイルだけなら、
> rundll32.exe shell32.dll,ShellExecute でいけるような気もしますが、その後の引数はどういう書式でかけばいいかわからんです。
できない。rundll32.exeできるのは、引数がそのように作られているか、引数がないもの、引数が1つでそれがゴミでも動くものに限る
0214デフォルトの名無しさん
2010/10/18(月) 19:14:20別コンソールやtempファイル使わんでもできるだろ
0215デフォルトの名無しさん
2010/10/18(月) 20:27:24教えてください
0216デフォルトの名無しさん
2010/10/18(月) 21:43:03title + tasklist
0217デフォルトの名無しさん
2010/10/19(火) 06:02:52ごめんね(´・ω・`)
>>206
キター!!JScriptなら
WScript.CreateObject("Shell.Application").ShellExecute("c:\\images\\mondainai.png", "", "", "", 4);
でいけますね
IShellDispatch2.ShellExecute Method (Windows)
http://msdn.microsoft.com/en-us/library/bb774148.aspx
>>213
mshtaでワンライナーできるのかw
mshta.exe "javascript:new ActiveXObject('Shell.Application').ShellExecute('c:\\images\\mondainai.png','','','',4);close()"
いけたわぁぁああああああ
0218デフォルトの名無しさん
2010/10/19(火) 18:22:53ごめんなさい。さっぱりです。
何をするためにそのコマンドを使うのでしょうか?
0219デフォルトの名無しさん
2010/10/19(火) 22:48:46title/?
tasklist/?
0220デフォルトの名無しさん
2010/10/19(火) 23:23:21ところでどこからtempファイルなんて出てきたの?
誤爆?安価ミス?
0221デフォルトの名無しさん
2010/10/19(火) 23:31:170222デフォルトの名無しさん
2010/10/20(水) 18:58:46を
start /b "プロセス監視制御" %ownpass%
で別コンソール開かない
echo finish!>%Temp%\pknd.log
if not exist %Temp%\pknd.log echo finish>%Temp%\pknd.log
を
title プロセス監視制御終了
if exist %Temp%\pknd.log del %Temp%\pknd.log&goto exit
を
for /f %%I in ('tasklist /nh /fi "windowtitle eq プロセス監視制御終了") do exit
0223デフォルトの名無しさん
2010/10/20(水) 19:00:250224デフォルトの名無しさん
2010/10/22(金) 18:13:12>>223
for /f %%I in ('tasklist /nh /fi "windowtitle eq プロセス監視制御終了"') do exit
これだと必ずexitするので
tasklist /nh /fi "windowtitle eq プロセス監視制御終了"|findstr プロセス監視制御終了&if not %errorlevel%==0 goto exit
こう書き換えました。恐らくxp等では正常に動作すると思うのですが、当方windows7で管理者で起動しているので
タイトルに 管理者: という文字が文頭についてしまい動作しませんのでtempを引き続き使用することにします。
0225デフォルトの名無しさん
2010/10/22(金) 19:07:51少しぐらい応用しろよな
0226デフォルトの名無しさん
2010/10/22(金) 22:08:58そのファイルをフォルダ移動させたいのですが
何度か書き換えたりしてためしてるのですが
うまくいかなくて、すいません。教えてください。
@echo off
setlocal
rem SCRename.vbs をインストールしたパスを設定
set SCRPATH=C:\TvRock\SCRename
for /F "usebackq delims=" %%I in (`cscript //nologo "%SCRPATH%\SCRename.vbs" "%~1" "$SCtitle$ 第$SCnumber$話 「$SCsubtitle$」" 13`) do set SCRTARGET=%%~I
move "%SCRTARGET%" "D:\REC FILE\hogehoge"
endlocal
0227デフォルトの名無しさん
2010/10/23(土) 13:13:45それだとxpなどで使えなくなり困るのです。
2000、XPProでも使いたいので
0228デフォルトの名無しさん
2010/10/23(土) 14:07:090229デフォルトの名無しさん
2010/10/23(土) 15:31:52そうでした
応用のきく奴になりたいです。
ありがとうございました
0230デフォルトの名無しさん
2010/10/23(土) 18:42:37にすれば再帰呼び出しもいらんよ
0231デフォルトの名無しさん
2010/10/25(月) 21:12:13ping -n 10 202.229.12.1
これを実行させるバッチファイルを作りたいです。
上記のスクリプトのみで保存したバッチファイルだと正常動作しません。
どうしたらよいのでしょうか?
0232デフォルトの名無しさん
2010/10/25(月) 21:33:24pause
↑でやったらできたよ。
結果は↓
Pinging 202.229.12.1 with 32 bytes of data:
Reply from 202.229.12.1: bytes=32 time=10ms TTL=245
Reply from 202.229.12.1: bytes=32 time=9ms TTL=245
Reply from 202.229.12.1: bytes=32 time=10ms TTL=245
Reply from 202.229.12.1: bytes=32 time=11ms TTL=245
Reply from 202.229.12.1: bytes=32 time=9ms TTL=245
Reply from 202.229.12.1: bytes=32 time=11ms TTL=245
Reply from 202.229.12.1: bytes=32 time=9ms TTL=245
Reply from 202.229.12.1: bytes=32 time=10ms TTL=245
Reply from 202.229.12.1: bytes=32 time=10ms TTL=245
Reply from 202.229.12.1: bytes=32 time=10ms TTL=245
Ping statistics for 202.229.12.1:
Packets: Sent = 10, Received = 10, Lost = 0 (0% l
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 11ms, Average = 9ms
0233232
2010/10/25(月) 21:34:090234デフォルトの名無しさん
2010/10/25(月) 21:39:26ファイルの名前をping〜って付けてない?
バッチファイルの名前に外部コマンドと同じ名前を付けたら誤動作するっぽいよ
hogehoge.bat
start /b
ping -n 10 アドレス
みたいにやってみては
0235デフォルトの名無しさん
2010/10/25(月) 22:29:07再帰的なバッチ ファイルとシステムの応答を停止する
http://support.microsoft.com/kb/105851/ja
0236デフォルトの名無しさん
2010/10/25(月) 23:18:260237覚え書き
2010/10/25(月) 23:47:10C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %~f1
REM Windows Media Player (Version 7.0以降)
"C:\Program Files\Windows Media Player\wmplayer.exe"
REM Windows Media Player (Version 6.4)
"C:\Program Files\Windows Media Player\mplayer2.exe"
REM ワードパッド (WindowsNT4.0〜XP)
"C:\Program Files\Windows NT\Accessories\wordpad.exe"
0238デフォルトの名無しさん
2010/10/26(火) 08:05:18ビンゴでしたw
ファイル名を"ping.bat"にしていたのが原因だったようです。
勉強になりました。ありがとうございました。
0239デフォルトの名無しさん
2010/10/26(火) 09:33:020240デフォルトの名無しさん
2010/10/28(木) 16:31:20試しにcygwinとutf-8表示できるターミナルソフトckを使ってみたところ表示はできましたが、
ターミナルソフトを使わずCygwin以外でもあつかいたのです。
(ckではなくminttyは表示できない文字がアラビア文字ありました)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
で、932.1に試しに*MeiryoKe_Consoleを設定し再起動してからフォントを変えてみましたが、
”・・・・”というような表示になってしまいます。
PowerShellでも同様でした。(PowerShell ISEのようなソフト上では表示できました)
notepadではそもそもMS ゴシックでもそれらの文字が表示できることから、何かソフト側で工夫しているのかもしれません。
コマンドプロンプトの話題になるので、適切なスレあれば誘導お願いしたいです。
0241デフォルトの名無しさん
2010/10/28(木) 18:54:01色々と難のある方法らしいから、一度 chcp utf-8 辺りでググレ
0242デフォルトの名無しさん
2010/10/28(木) 18:55:06unicode対応をうたってるエディタでも化けたりするけど
なんでか知らないけどnotepadって混在文字を表示するのは優秀なので
notepadで表示できてもあんまり意味ないw
0243デフォルトの名無しさん
2010/10/28(木) 21:45:50おまえ chcp 65001 使ったこと無いくせに
0244デフォルトの名無しさん
2010/10/28(木) 21:54:280245デフォルトの名無しさん
2010/10/28(木) 21:56:06他の対話形式のコマンド使わないなら、PSISE(と、必要ならchcp 65001)のコマンドラインが現状最善だと思うよ
0246デフォルトの名無しさん
2010/10/28(木) 22:44:03Vista と 7 の cmd は糞
0247デフォルトの名無しさん
2010/10/28(木) 23:39:430248デフォルトの名無しさん
2010/10/28(木) 23:44:270249デフォルトの名無しさん
2010/10/28(木) 23:44:420250デフォルトの名無しさん
2010/10/29(金) 00:14:04ttp://hato.2ch.net/test/read.cgi/news/1288275330/
> 「送ってもらってますが、見もしないでゴミ箱に・・・、すいません、我が家も(ゴミ箱に)行ってます。
> 『ねんきん定期便』送られてくるけれど、見ないでゴミ箱へ行ってます。そういう人は多いと思います。
> その人が(『ねんきんネット』に)移行してくれますか?」(仕分け人、枝野幸男 衆院議員)
枝野くんの「クシャクシャでポイ」
ttp://www.youtube.com/watch?v=taEEKkyAiBM
0251デフォルトの名無しさん
2010/10/29(金) 00:37:46環境かき忘れていました。Vista SP2とXP SP3です。
タイ語やアラビア語のフォントとFontLinkすればということでしょうか?
試してみます。
しかし、CygwinのUTF8対応と謳っているターミナルでもソフトによっては同じフォントでも表示できたりできなかったりするみたいですね。
>>241
chcp 65001は>>240のときや以前にも何回か試したのですが書き忘れていました。
ネットを検索するとchcp 65001の記述をよく見かけるのですが、
何故か残念ながらcmdでまともに使えた試しがなく・・・
UTF-8の文字のファイルは表示できましたが、
>>240 の問題の”・・・・”という文字表示ができない問題は代わりませんでした。
また何故かbatファイルが実行できない、IMでの入力ができない問題がありました。
後出しで申し訳なく
>>242
手持ちのエディタでも化けてました。
notepadすごいんですね
>>245
ISEはPowerShellも強力ですし便利ですよね。
出力テキストの折り返しがなかったり、ファンクションキーで入力履歴がたどれないなど問題があるので、
使い分けが要るかなと。
フォントがMS ゴシックなのにISEもnotepad並に何でも表示できて凄いですね。
むしろ"MeiryoKe_Console"にしたらアルファベット文字がかけたりしました。
0252デフォルトの名無しさん
2010/10/29(金) 09:01:42ttp://www.geocities.jp/npp_euc_jp/
notepadだけじゃちょっと辛いっしょw
文字が混在してるテキストを表示したいならこのエディタがオススメ
0253デフォルトの名無しさん
2010/10/31(日) 17:44:57for文入れ子の時とかどうしてる?
@echo off
cd /d "%~dp0"
echo "%cd%"
cd /d "%~1"
echo "%cd%"
pushd "%~1"
echo "%cd%"
echo -----
cd /d "%~dp0"
echo "%cd%"
for %%A in (%*) do (
cd /d "%%~A"
echo "%cd%"
pushd "%%~A"
echo "%cd%"
echo -----
)
pause
exit
0254デフォルトの名無しさん
2010/10/31(日) 19:44:04遅延展開を調べろ
0255デフォルトの名無しさん
2010/10/31(日) 20:41:25pushd c:\hoge
for %%i in (fuga,hage) do ( pushd c:\%%i
echo "%cd%")
は
pushd c:\hoge
for %%i in (fuga,hage) do (pushd c:\%%i
echo "c:\hoge")
と全く同じ
こういうのはechoをオンにしてるとすぐわかる。
おかしいと思うのにecho offにしてる奴は馬鹿としか言いようがない。
0256デフォルトの名無しさん
2010/10/31(日) 21:28:320257デフォルトの名無しさん
2010/10/31(日) 21:39:030258デフォルトの名無しさん
2010/10/31(日) 21:54:390259デフォルトの名無しさん
2010/11/01(月) 17:54:580260デフォルトの名無しさん
2010/11/02(火) 01:42:36で出てくるディレクトリの一覧を一つづつ引数にして他の処理に渡したいんですけど
そういう事ってできますか?
0261デフォルトの名無しさん
2010/11/02(火) 02:07:270262デフォルトの名無しさん
2010/11/02(火) 03:17:030263デフォルトの名無しさん
2010/11/02(火) 09:43:08レスありがとう
そこ盲点でした
ちゃんとした回答をくれる優しさに感謝してます
0264デフォルトの名無しさん
2010/11/02(火) 09:44:43batの最初のほうに色々な判定処理を置くと便利なようです
----------------------------------------------
rem 引数のディレクトリが存在しない場合はexit
setlocal enabledelayedexpansion
for %%A in (%*) do (
cd /d "%%~A"
if !ERRORLEVEL!==1 (
echo "%%~A" ディレクトリが存在しません
echo バッチを終了します
echo.
pause
exit
)
)
endlocal
0265デフォルトの名無しさん
2010/11/02(火) 12:18:00if not errorlevel 0
で変数展開無く判定できる。
ちなみにディレクトリの有無は
if not exist "%%~1\nul"
とかやればわかる。
0266デフォルトの名無しさん
2010/11/02(火) 12:27:13if not errorlevel 0 はerrorlevel 0 の時の判定
>>264の場合は if errorlevel 1 だわな。
0267デフォルトの名無しさん
2010/11/02(火) 14:54:40でいいよ
0268デフォルトの名無しさん
2010/11/02(火) 14:57:00だろ
0269デフォルトの名無しさん
2010/11/02(火) 15:53:20ディレクトリ変更が必要ならいいが、単にディレクトリの有無を調べるだけで
元のディレクトリに戻すとかいうんなら無駄もいいとこだが。
0270261
2010/11/02(火) 16:05:54と思ったがよく見ると使われてないや
スルーされた事には違いないけど
0271デフォルトの名無しさん
2010/11/02(火) 16:18:20260-261はそこで終わってるだろ。
質問者がレス返してないだけで。
0272261
2010/11/02(火) 16:41:10半年ROMっとく
0273デフォルトの名無しさん
2010/11/02(火) 17:36:14forじゃわからんだろせめてfor /fと言ってやれよ
0274デフォルトの名無しさん
2010/11/02(火) 21:14:450275デフォルトの名無しさん
2010/11/04(木) 12:38:11囲まれるかどうかは、ファイル名に半角スペースが入っていれば全て囲まれると
考えていたんですが、違うんでしょうか?
問題となっているファイルはD&Dで問題が出ないようにあらかじめファイル名に
半角スペースを入れる対策をしてあるものなんですが、なぜかどうやってもD&D時に
""で囲まれないという状態になっています。
不思議なのが同じファイル名で別の場所に作った別ファイルは問題なく""で囲まれるのに
該当ファイルはどんなファイル名にリネームしようが、別名のハードリンクを作ろうが、
複数選択でドロップしようが、ずっと""で囲まれないという事態になっています。
該当ファイル実体を別名でコピーしたり、別HDDにコピーしたりした場合はOKでした。
何かファイルシステム上の問題でもあるんでしょうか?
同様の経験をした方はおられないでしょうか?
当環境はWin7x64 ファイルシステムはNTFSです。
0276デフォルトの名無しさん
2010/11/04(木) 13:29:070277デフォルトの名無しさん
2010/11/04(木) 16:15:560278デフォルトの名無しさん
2010/11/04(木) 16:25:410279デフォルトの名無しさん
2010/11/05(金) 04:04:51半角空白が含まれていればダブルクォーテーションがつくけど、そうじゃない場合はつかない。
問題が起こるのは、半角空白がなくて全角空白がある場合。
一旦引数を一つの変数にまとめて切り出すといいらしい。具体的にどうなってるのか理解してないんだけど。
>>17
それより、abc01.flv を漢字01.flvにリネームするのが、ワイルドカードだとうまくいかないので、
for /L で自分で数値を与えてやるとうまく出来た。
"01"とかの"0"は文字で与えてやればいいだろう。
今までバッチファイル編集とかやってたよ。
>for /l %I in (1,1,9) do ren G_SEED_0%I.flv 種物語0%I.flv
0280デフォルトの名無しさん
2010/11/05(金) 04:46:020281デフォルトの名無しさん
2010/11/05(金) 10:43:06VBSでもダメです。
>>278-279
問題のファイルはPT2の出力TSファイルで、ファイル名に
番組名が入るのですが、これが不定で全角空白を含むことも
あるので [番組名] [日付-時間].ts といったようなフォーマットにして
一律半角空白を含めるようにしています。
これが今年の5月から7月中の一つの番組だけに問題の現象発生。
同時期の別の番組や同じ番組の7月以降だと問題なし。
同じファイルやハードリンクならば「aaa aaa.txt」 みたいにリネームして
:loop
echo %1
shift
if not "%~1"=="" goto :loop
といった引数だけ表示するバッチに落とした状態でも""では囲まれてはいない状況です。
%*を使うのはNG。元々複数選択してドロップするものなので他のファイルとの区切りが
なくなってしまいます。
0282デフォルトの名無しさん
2010/11/05(金) 13:41:00ああ、それは、半角スペースが前後の文字とくっついちゃったんだろうね。
文字コードによってはそういうこともある。
「日付-時間」じゃなくて「日付 時間」と言う風にしていればそういうことにはならなかっただろう。
> 元々複数選択してドロップするものなので
それをforループで分割処理するんだけど。
0283デフォルトの名無しさん
2010/11/05(金) 15:13:43それが、問題のファイルは
aaa aaa.txt
のような単純なファイル名にしてもNGだから困っているのです。
当然、問題のファイル実体以外でこんなファイル名なら""で囲まれます。
> それをforループで分割処理するんだけど。
a b.txt
c d.txt (問題のあるファイル)
e f.txt (問題のあるファイル)
g h.txt
これを複数選択してドロップすると
%* は
"a b.txt" c d.txt e f.txt "g h.txt"
となるんですが。どう分割するんですか?
0284デフォルトの名無しさん
2010/11/05(金) 15:28:470285デフォルトの名無しさん
2010/11/05(金) 15:32:15icacls 変なファイル
などで他のファイルを見比べて違いはないのか?
0286デフォルトの名無しさん
2010/11/05(金) 15:45:21凄い。どうも当たりのようです。
問題の無いファイルは
hoge.ts BUILTIN\Administrators:(F)
NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administrators:(F)
BUILTIN\Users:(RX)
という結果だったのですが
問題のあるファイルは軒並み
fuga.ts BUILTIN\Administrators:(F)
NT AUTHORITY\SYSTEM:(F)
(F)
BUILTIN\Users:(RX)
という結果になっていました。
これが何を意味するのかはよくわからないんですが…
0287デフォルトの名無しさん
2010/11/05(金) 15:57:310288デフォルトの名無しさん
2010/11/05(金) 16:10:25問題のファイルを作った時のOSはXPだったかもしれないです。
セキュリティタブを見たら不明なアカウントがユーザー名の中に…
そういえば7月前後にOS入れ替えたはず…
>>287
勿論調べてますけど、というか簡単な知識はありますけど
ACL関係深入りするとわけわかめなんでorz
下手にいじると後が怖い。
今アクセス許可の部分、他のファイルと見比べてますが
XPの時のアカウントらしきSIDがある以外は特に何も無く、そのユーザーが所有者になっていました。
XPのユーザーを削除して所有権を取得しても、問題は直っていない…と。
0289デフォルトの名無しさん
2010/11/05(金) 16:43:12こりゃ失敬。
0290デフォルトの名無しさん
2010/11/05(金) 20:12:590291デフォルトの名無しさん
2010/11/06(土) 18:47:56特にacl を指定していなかったなら
takeown /f <file>
して
icacls <file> /reset
でいいとおもう
OS 入れなおす度 ドライブ全体にやってるorz
0292デフォルトの名無しさん
2010/11/06(土) 20:04:060293デフォルトの名無しさん
2010/11/07(日) 07:21:18FontLinkはやってないはず
Console | Download Console software for free at SourceForge.net
http://sourceforge.net/projects/console/
もしできないならヘルプの"Language settings"に書いてある方法でいける。
ただし、肝心の日本語入力はできないw
IM起動すると操作できなくなる
表示やコピペや日本語の補完は問題ないのでIMが考慮されていないだけだとは思う
念のためPowerShellも試したけど同様だったよ
0294デフォルトの名無しさん
2010/11/09(火) 23:11:00の逆引用符内でスペースを含むパスを使用する方法を教えて下さい。
変数化したりいろいろ試しているのですがうまくいきません。
0295デフォルトの名無しさん
2010/11/09(火) 23:27:27for /f "usebackq" %i in (`コ^ マ^ ン^ ド`)
0296デフォルトの名無しさん
2010/11/09(火) 23:28:240297デフォルトの名無しさん
2010/11/09(火) 23:35:05>'C:\Program' は、内部コマンドまたは外部コマンド、
>操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どっちをやってもダメです
0298デフォルトの名無しさん
2010/11/09(火) 23:37:230299デフォルトの名無しさん
2010/11/09(火) 23:38:530300デフォルトの名無しさん
2010/11/09(火) 23:43:03それもダメでした。
後出しになりますが標準エラー出力をパイプしてるので→2^>^&1 1^>nul ^|
その辺の問題かfindコマンドの二重引用符の問題かも知れません。
0301デフォルトの名無しさん
2010/11/09(火) 23:45:49for /f "usebackq tokens=2-4 delims=:. " %i in (`C:\Program^^ Files\MediaCoder\codecs\ffmpeg.exe -i hoge.avi 2^>^&1 1^>nul ^| find ^"Duration:^"`) do @echo %i:%j:%k
0302デフォルトの名無しさん
2010/11/09(火) 23:48:47for /f "usebackq tokens=2-4 delims=:. " %i in (`""C:\Program Files\MediaCoder\codecs\ffmpeg.exe" -i hoge.avi 2>&1 1>nul | find "Duration:""`) do @echo %i:%j:%k
0303デフォルトの名無しさん
2010/11/09(火) 23:50:310304デフォルトの名無しさん
2010/11/09(火) 23:55:04cmd/?
2. 最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初
の引用符とコマンド ラインの最後の引用符が削除され、最後の引用符の後
のテキストが有効になります。
0305デフォルトの名無しさん
2010/11/10(水) 00:03:33ンド ラインとして処理されます。次のルールが引用符 (") の処理に使われます:
1. 次のすべての条件に一致する場合、コマンド ラインの引用符が有効になり
ます:
- /S スイッチがない
- 引用符が 1 組ある
- 引用符の中に特殊文字がない
(特殊文字は &<>()@^| です)
- 引用符の中に 1 つ以上のスペースがある
- 引用符の中の文字列が、実行可能ファイルの名前である
2. 最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初
の引用符とコマンド ラインの最後の引用符が削除され、最後の引用符のあ
とのテキストが有効になります。
これっすね。
読んでみます。
0306デフォルトの名無しさん
2010/11/10(水) 00:12:23コマンドプロンプトに貼り付ければ動くのですが、まっさらなバッチにこの一行だけ記入しても、
>\Program の使い方が誤っています。
と出ます。
何故なんでしょうか?
0307デフォルトの名無しさん
2010/11/10(水) 00:13:580308デフォルトの名無しさん
2010/11/10(水) 00:14:240309デフォルトの名無しさん
2010/11/10(水) 00:15:46ちなみにhoge.aviのあるディレクトリで実行してます。
0310デフォルトの名無しさん
2010/11/10(水) 00:16:28失礼しました。
0311デフォルトの名無しさん
2010/11/10(水) 01:27:09繰り返し処理の件で聞きたいことがあります。
いまいち、for文の書き方がわかってないので、
お手数ですが、教えてください。
【やりたいこと】
(1)任意に数をインプットする。
(2)ディレクトリにあるtxtファイルを(1)で入力した数から連番になるようにリネームしたい。
→例えばディレクトリにtxtファイルがa.txt、b.txt、c.txtが3個あったとし、
(1)で入力したのが3ならば、a.txt=3.txt、b.txt=4.txt、c.txt=5.txtとなるようにしたい。
【困っていること】
(1)の任意の数を入力する処理は完了。
(2)のfor文を使って、ディレクトリにあるtxtの文だけリネームする構文が書けない。
→ワイルドカードのところが、変数Rでリネームされ、txtの数だけ、R+1ずつされて繰り返していきたいのだが…
@echo off
rem 変数の入力
rem 変数Rは繰り返し用の変数として用意
set /p UserInput=Enter a number:
set /a R=UserInput
rem ファイルをリネーム
for %%R in (*) do *.txt R.txt
goto :eof
0312デフォルトの名無しさん
2010/11/10(水) 01:51:47call ren %%S %%R%%.txt
set / R+=1
)
0313デフォルトの名無しさん
2010/11/10(水) 02:38:43>>311でrenが抜けてました、すいません。
試しに、上記構文をfor文以下をコピペし動かしてみたんですが、
ファイルが一個しかリネームされません…
あと質問がいくつかあります。
教えてちゃんですいませんが、
回答してもらえたら幸いです。
�@Sという変数が出てきていますが、これはforで繰り返す為の
「カウンタ」として機能させるための変数という認識でいいでしょうか?
違うとしたらSの変数って一体なんですか?
�Ainの('dir /b *.txt')ですが、dirコマンドでディレクトリの中身一覧を
作成する必要はあるんでしょうか?
また、/bのオプションの意味がぐぐってみたんですが、よくわかりません。
(※検索ワードは"bat /b 意味")
�Bcallがありますが、呼び出す為の構文がどれなのかよくわかりません。
"ren %%S %%R%%.txt"を呼び出している?
callは外部にあるbatやsub:を読みだすイメージがあるんですが…
0314デフォルトの名無しさん
2010/11/10(水) 03:23:21>�@
そうだよ
だから繰り返しの変数とかわざわざ宣言する必要もないから
set /p R=Enter a number:
でいい
>�A
'dir /b *.txt'
これでそのフォルダ内に別の拡張子のファイルが混ざってても対応できる
フォルダ内が全てテキストファイルなら(*)でも問題ないはず
/bはファイル名だけ取得する。これでフォルダ内のテキストファイルを全て取得できる
>�B
callはあるコマンドを使って制御が戻らなくなるのを阻止する為に使う
けど初心者で実際にコマンド走らせてない俺は312がどんな意図を持ってcallを使ったかわからん。
renって制御戻ってこないっけ?
誰か上級者の人答えておくれ
0315デフォルトの名無しさん
2010/11/10(水) 03:33:031 Sはfor変数
2 リカージョン防止 ren後のファイル名がin (*)の中に入らぬように先にdirですべて取り出す
3 %R% の遅延展開 CALL %%R%%
0316デフォルトの名無しさん
2010/11/11(木) 19:17:32にパスが通った状態で、呼び出し頻度のちょっと低いスクリプトを
c:\bat\xxx
に置いて
xxx\yyy.bat
みたいに呼び出したいんだけどそう言うのは無理なのかな。
指定されたパスが見つかりません。になってしまう。
0317デフォルトの名無しさん
2010/11/11(木) 20:13:191.アプリケーションのロードに使ったディレクトリ(アプリケーションの実行可能ファイルと同じディレクトリ)
2.親プロセスのカレントディレクトリ
3.Windows 95/98:Windows のシステムディレクトリ。このディレクトリのパスは、 関数で取得できます。
Windows NT/2000:32 ビットの Windows システムディレクトリ。このディレクトリのパスは、GetSystemDirectory 関数で取得できます。このディレクトリの既定の名前は、SYSTEM32 です。
4.Windows NT/2000:16 ビットの Windows システムディレクトリ。このディレクトリのパスを取得する Win32 関数はありませんが、SearchPath 関数の検索対象になります。このディレクトリの既定の名前は、SYSTEM です。
5.Windows ディレクトリ。このディレクトリのパスは、 関数で取得できます。
6.環境変数 PATH に記述されている各ディレクトリ
7.Windows 95/98:32 ビットの Windows システムディレクトリ。このディレクトリのパスは、GetSystemDirectory 関数で取得できます。このディレクトリの既定の名前は、SYSTEM32 です。
0318デフォルトの名無しさん
2010/11/12(金) 11:17:550319デフォルトの名無しさん
2010/11/12(金) 16:05:550320デフォルトの名無しさん
2010/11/12(金) 16:12:580321デフォルトの名無しさん
2010/11/12(金) 16:45:04In the case of a partial name, the function uses the current drive and current directory to complete the specification.
The function will not use the search path.
0322デフォルトの名無しさん
2010/11/12(金) 17:40:240323デフォルトの名無しさん
2010/11/12(金) 17:45:220324デフォルトの名無しさん
2010/11/12(金) 19:13:54c:\bat\xxx.cmd
@echo off
c:\bat\xxx\%*
を作れば
xxx\yyy.bat
じゃなく
xxx yyy.bat
で実行できるよ
0325デフォルトの名無しさん
2010/11/12(金) 19:52:45とかじゃなく
xxx\yyy.bat
ではできないんですか?
0326デフォルトの名無しさん
2010/11/12(金) 21:58:06質問者の意図を全然読み取れない良くない頭を持っていることはよくわかった
0327デフォルトの名無しさん
2010/11/12(金) 22:26:140328デフォルトの名無しさん
2010/11/12(金) 22:40:190329デフォルトの名無しさん
2010/11/12(金) 23:46:57とかじゃなく
xxx\yyy.bat
ではできないんですか?
0330デフォルトの名無しさん
2010/11/13(土) 00:38:520331デフォルトの名無しさん
2010/11/13(土) 02:46:58はできる。
run yyy.bat
もできる。
xxx yyy.bat
もできる。
0332デフォルトの名無しさん
2010/11/13(土) 03:47:07質問者の意図を全然読み取れない良くない頭を持っていることはよくわかった
0333デフォルトの名無しさん
2010/11/13(土) 04:10:060334デフォルトの名無しさん
2010/11/13(土) 04:51:310335デフォルトの名無しさん
2010/11/13(土) 15:59:350336デフォルトの名無しさん
2010/11/13(土) 18:10:230337デフォルトの名無しさん
2010/11/13(土) 19:24:3264bit の append.exe が無い。
0338デフォルトの名無しさん
2010/11/13(土) 21:18:08" .cmd"のつもりだろうができないよ
0339デフォルトの名無しさん
2010/11/14(日) 19:32:181 @echo off
2 SET TERM1=PC1
3 SET TERM2=PC2
4 SET TERM3=PC3
5 for %%A in (^
6 %TERM1% ^
7 %TERM2% ^
8 %TERM3%)^
9 do ^
10 echo %%A データ転送
■実行結果
PC1 データ転送
PC2 データ転送
PC3 データ転送
よろしくお願いします。
上記のバッチ文をfor文を見やすくするために8行目を
8-1 %TERM3%^
8-2 )^
に分離して実行したいですが、分離するとうまく実行されません。
キャレットは途中改行でのエスケープだと認識してますが
何か文字を付け足したりしないといけなかったりするのでしょうか。
0340デフォルトの名無しさん
2010/11/14(日) 20:22:24> 8-1 %TERM3%^
> 8-2 )^
8-2 [space or tab])^
なら行く。理由は知らん。
0341デフォルトの名無しさん
2010/11/14(日) 20:42:346 %TERM1%
7 %TERM2%
8 %TERM3%
) ^
でいいんじゃないか?ためしてないけど
()内で^は不要
)^
do
だと)doで) doにならん
0342デフォルトの名無しさん
2010/11/14(日) 21:06:10> だと)doで) doにならん
そっちは元々くっついてても問題ない
0343デフォルトの名無しさん
2010/11/14(日) 23:06:39ありがとうございます。
>>339 の)の前にスペース置いて以下のように変更して対応しようと思います。
■変更後
5-- for %%A in (^
6-- %TERM1%△^
7-- %TERM2%△^
8-1 %TERM3%△^
8-2 △)^
9-- do ^
10- echo %%A データ転送
※()内の△は半角スペース
原因ははっきりとはわからないのですが、
前の行末の^ が次の行始の) にエスケープでもかけているのですかね
0344デフォルトの名無しさん
2010/11/14(日) 23:39:360345デフォルトの名無しさん
2010/11/15(月) 15:57:15バッチファイルを作っているのですが
あるディレクトリ内(サブディレクトリ含む)の再生時間○秒以下の動画ファイルを削除する
といったものを作るには、どう書いたらいいでしょうか?
というか動画ファイルなどの再生時間を取得することってできるんでしょうか?
○バイト以下、とかだったら出来ると思うんですが…
よろしくお願いします
0346デフォルトの名無しさん
2010/11/15(月) 16:06:100347デフォルトの名無しさん
2010/11/15(月) 16:16:09>>1の※
0348デフォルトの名無しさん
2010/11/15(月) 16:29:49バッチ単独では無理。
mediainfoとか使えば取れる
0349デフォルトの名無しさん
2010/11/15(月) 16:30:10ありがとうございます!
先は長い…
0350デフォルトの名無しさん
2010/11/15(月) 17:05:040351デフォルトの名無しさん
2010/11/15(月) 17:12:39mediainfo --Inform='General;%Duration%' とかすれば
ミリ秒単位で取れるみたいだね
0352デフォルトの名無しさん
2010/11/24(水) 19:57:530353デフォルトの名無しさん
2010/11/24(水) 20:11:210354デフォルトの名無しさん
2010/11/24(水) 22:21:360355デフォルトの名無しさん
2010/11/25(木) 02:28:120356デフォルトの名無しさん
2010/11/25(木) 08:34:410357デフォルトの名無しさん
2010/11/25(木) 22:06:060358デフォルトの名無しさん
2010/11/26(金) 12:49:05そのリンク先を展開するのってどうやればいいですか。
0359デフォルトの名無しさん
2010/11/26(金) 13:06:21wshならできる
0360デフォルトの名無しさん
2010/11/26(金) 13:09:130361デフォルトの名無しさん
2010/11/26(金) 16:00:400362デフォルトの名無しさん
2010/11/26(金) 16:48:220363デフォルトの名無しさん
2010/11/27(土) 15:42:170364デフォルトの名無しさん
2010/11/27(土) 18:22:55何がしたいの?
>>358に対するレスってわけでもないだろうけど。
0365デフォルトの名無しさん
2010/11/27(土) 18:25:430366デフォルトの名無しさん
2010/11/27(土) 18:47:430367デフォルトの名無しさん
2010/11/27(土) 22:28:450368デフォルトの名無しさん
2010/11/29(月) 13:41:190369デフォルトの名無しさん
2010/11/29(月) 16:24:190370デフォルトの名無しさん
2010/11/29(月) 18:06:22いや他力本願デバッグだろw
0371デフォルトの名無しさん
2010/11/30(火) 15:05:00メモ帳トラッパーみたいなのじゃなくて。
0372デフォルトの名無しさん
2010/11/30(火) 15:16:320373デフォルトの名無しさん
2010/11/30(火) 15:23:30Explorerからできないというだけで設定自体は普通にあるのか。
0374デフォルトの名無しさん
2010/11/30(火) 17:43:570375デフォルトの名無しさん
2010/11/30(火) 23:51:51CurrentDirectory
0376デフォルトの名無しさん
2010/12/03(金) 14:13:48Rapid Environment Editor ? About
http://www.rapidee.com/en/about
0377デフォルトの名無しさん
2010/12/04(土) 01:15:33とした時に書き込まれた時に改行をしない
もしくは、前の行の改行を削除してから書き込むことは出来ないでしょうか?
イメージとして
12/01 12/02 12/03
のように横一列に吐いてくようなかんじに
0378デフォルトの名無しさん
2010/12/04(土) 01:31:42やろうと思えば出来なくもないが・・・
最後の行以外を別ファイルに書き込んで
最後の行に目的文を追加してから書き込んだ後リネームとかw
0379デフォルトの名無しさん
2010/12/04(土) 03:45:380380デフォルトの名無しさん
2010/12/04(土) 08:01:34スレチ
0381デフォルトの名無しさん
2010/12/04(土) 15:28:570382デフォルトの名無しさん
2010/12/04(土) 15:35:37(set /p x=%date%)<nul >>a.txt
0383デフォルトの名無しさん
2010/12/04(土) 15:50:030384デフォルトの名無しさん
2010/12/04(土) 17:34:160385デフォルトの名無しさん
2010/12/04(土) 18:17:30括弧は要らんのじゃね?
0386デフォルトの名無しさん
2010/12/04(土) 18:34:53空白入れるなら要らない
set /p x=%date% <nul >>a.txt
0387デフォルトの名無しさん
2010/12/04(土) 18:41:210388デフォルトの名無しさん
2010/12/04(土) 20:04:47nulってやると改行されないってこと?
0389デフォルトの名無しさん
2010/12/04(土) 21:15:130390デフォルトの名無しさん
2010/12/04(土) 21:37:42いや形式に寄らず要らんと思うけど。
dateどころかプロンプトに表示する文字列が何であっても要らないんじゃない?
その空白はファイルに出るだけじゃん。
文字列の最後が空白になるだけの話で、コマンドそのものは空白不要。
0391デフォルトの名無しさん
2010/12/04(土) 21:38:22set /?
0392デフォルトの名無しさん
2010/12/04(土) 22:06:10>>387を試してから言えよ
0393デフォルトの名無しさん
2010/12/04(土) 22:08:52test.txt
%1に
0394デフォルトの名無しさん
2010/12/04(土) 22:09:570395デフォルトの名無しさん
2010/12/04(土) 22:37:380396デフォルトの名無しさん
2010/12/05(日) 01:13:150397デフォルトの名無しさん
2010/12/05(日) 03:28:45"%*"とすると、引数が"fuga hoge"のようにすでにダブルクオーテーションで囲まれている場合に、
""fuga hoge""と二重になりアプリによってはエラーを起こしてしまいます。
上手く引数をまとめて渡す方法はないものでしょうか?
例えばこんな感じで書いた場合です。
(%*) && growlnotify.com "%*"
0398デフォルトの名無しさん
2010/12/05(日) 03:56:580399デフォルトの名無しさん
2010/12/05(日) 15:22:410400デフォルトの名無しさん
2010/12/05(日) 15:39:150401デフォルトの名無しさん
2010/12/05(日) 21:18:45>>399
%~*だと
> バッチ パラメータの置き換えで、パス演算子の次の使用法は無効です:
といわれました(´・ω・`)
CALL /?したら
> 上の例の %1 と PATH は、他の有効な値で置き換えることができ
> ます。%~ 構文は有効な引数の数によって区切られます。%~ 修飾子
> は %* と同時には使用できません。
・・・(´・ω・`)
>>400
上手く行かず調べていたのですが、ソフト側が複数の引数を受け付けないみたいでした。
"%~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9" みたいにもしたのですが、そうすると余白が余分についてしまいます。
あとは、上記のものをsedでもかけて空白取り除くとか、
>>398 の手もあるのですが、そこまでやるならbatファイルでないほうが楽なので、他のスクリプトを試してみます。
0402デフォルトの名無しさん
2010/12/06(月) 00:06:52growlnotify.com "%x:"=%"
0403デフォルトの名無しさん
2010/12/06(月) 18:14:45if defined all if not ^%all:~0,1%==^" set all="%all%
if defined all if not ^%all:~-1,1%==^" set all=%all%"
0404デフォルトの名無しさん
2010/12/07(火) 20:50:25:for
shift /0
set y=%0
if defined y goto :next
set x=%x% "%~0"
goto :for
:next
echo %x%
0405デフォルトの名無しさん
2010/12/09(木) 00:30:42別途、1ファイルにコピーするのってどうすればいいでしょうか?
0406405
2010/12/09(木) 00:32:461.txt
2.txt
3.txt
↑があったとして、最終行のみを
↓のようなファイルで保存したいです
1.txt.after
2.txt.after
3.txt.after
0407デフォルトの名無しさん
2010/12/09(木) 01:42:23どっかから拾ってくるのが手っ取り早いんじゃないかな
0408デフォルトの名無しさん
2010/12/09(木) 03:45:54SETLOCAL ENABLEDELAYEDEXPANSION
for %%I in (*.txt) do for /F %%J in ('type "%%~I"^|find /c /v ""') do (
set /a a=%%J-1
more "%%~I" +!a!>"%%~I".after )
0409デフォルトの名無しさん
2010/12/09(木) 09:09:500410デフォルトの名無しさん
2010/12/09(木) 14:53:32実際どうなんだろ。
0411デフォルトの名無しさん
2010/12/09(木) 14:59:010412デフォルトの名無しさん
2010/12/09(木) 17:33:07set x=
for "usebackq delims=" /F %%J in ("%%~I") do set x=%%J
call echo,%%x%%>"%%~I.after"
)
0413デフォルトの名無しさん
2010/12/09(木) 21:58:30なんですが、いかがでしょう?
http://hibari.2ch.net/test/read.cgi/avi/1288510853/318-321
で少し頂いたんですが。
0414デフォルトの名無しさん
2010/12/09(木) 22:11:24x264は[email protected] High4.0 Veryslow crf18 SAR4:3 --qcomp 0.7 --ref 3
できれば、音声をNeroAACで品質固定(最高)設定でエンコして、mp4boxで自動MUX
できるといい。
0415デフォルトの名無しさん
2010/12/09(木) 22:19:47aviから音声をneroaacencってどうやるんだっけ?
avi2wavとかそんなツールあったっけ?
最近TSからMP4作るのしかやってないからわかんねえ。
バッチでやるって言っても、結局一々手作業で入力してたコマンド群を
ファイルリスト使ってループで回すってだけだから
手動実行してるコマンドがどんなものかってのが無ければわからんぜ。
動画エンコに詳しい、かつバッチにも詳しいって奴ばかりじゃねーから。
0416デフォルトの名無しさん
2010/12/09(木) 23:39:04とりあえず現状、手動でどうやってるか晒しておくれ。
0417デフォルトの名無しさん
2010/12/09(木) 23:44:13携帯動画変換君でAVI→1440x1080p@29.97f(High/4.0/crf18 --qcomp 0.7 --ref 3)
のエンコってできそうですか?
0418デフォルトの名無しさん
2010/12/10(金) 01:15:14逆に言えば何が入ってるか分からないよな
ツールなら判別できるけど
バッチにどうやってその情報を渡すのか…
0419デフォルトの名無しさん
2010/12/10(金) 08:08:50現状、コマンドをタイプしてエンコードしていないってこと?
それはちょっとアドバイスできないなぁ・・・
むしろ各種コマンドの使い方が分かっていれば、>>413のバッチに書き加えていくことで連続エンコードできるはずだよ。
ところで携帯動画変換君って、ffmpeg一本じゃなかったかな?
独立のx264は使っていなかった気がするんだけど。
0420デフォルトの名無しさん
2010/12/10(金) 11:35:11手動(コマンドプロンプト)はNeroAACしか使ったことないんです。
以前はTXP4で可逆のHuffyuv2.1.1+無圧縮音声のAVIで出して
MediaCoder0.7.3.4616でx264+NeroAACエンコできてました。
ただ、そのVerは何故かVerySlowだと失敗する。
最近のMediaCoderは何故かフレーム数が減る。
現状はTXP4+x264vfw&TXP内蔵MainConceptAAC512k→mp4boxでMUX。
HandbrakeはFAACの160kまでなのでNG(x264はコマンド追加できるっぽい)
XMediaRecodeはHuffyuvだとハングするし音声はFAACの品質500は設定できる
けどNeroの品質固定最高で実質320k以上で出したい。
1つ設定しといて、D&Dで放り込んで、ボタン押すだけみたいな使い方のできる
ソフトが完成形になってればいいんだけど。
aviの中身判別させてx264に渡して且つx264自体はHUFFYUVはデコードできない?
bat無理っぽいなぁ。
0421デフォルトの名無しさん
2010/12/10(金) 12:42:330422デフォルトの名無しさん
2010/12/10(金) 12:46:01aviの中身を判別って、どこまでやりたいか知らないけど、
とりあえずHuffyuv自体は、デコードにAvisynthを噛ませばできそうかな。
バッチファイルでAvisynthスクリプトを出力して、それをx264で読ませればいいと思う。
音声は、avs2wavまたはffmpeg→neroAacEncで。
(avs2wavは日本語ファイル名だとか、ちょっとしたことで落ちるからffmpegがいいかも)
@echo off
for %%i in (*.avi) do call :encode "%%i"
pause
exit /b
:encode
set MP4=%~dpn1.mp4
set AVS=%~dpn1.avs
set WAV=%~dpn1.wav
set AAC=%~dpn1.aac
echo AVISource(%1)>"%AVS%"
echo ConvertToYV12()>>"%AVS%"
x264 --thread-input --progress --crf 18 -o "%MP4%" "%AVS%"
ffmpeg -y -i "%AVS%" -vn "%WAV%"
neroAacEnc -if "%WAV%" -of "%AAC%"
mp4box "%MP4%" -add "%AAC%"
exit /b
エンコパラメータは最低限なので、自分で考えてね。
ちなみに120fpsのことは考えてないので、あしからず。
0423デフォルトの名無しさん
2010/12/10(金) 13:21:240424デフォルトの名無しさん
2010/12/10(金) 14:07:16多分そのバッチ使うと音ズレると思うんだわ。
こういうのはコマンド上で書くのは簡単なんだけどな。
自分で試行錯誤できないマルチ君にバッチ例まで書いてやることは無いよ。
大抵無駄になるし、レスしても多分見てないぜ。
0425422
2010/12/10(金) 14:15:050426デフォルトの名無しさん
2010/12/10(金) 23:56:31どうやって音ズレの秒数拾ってんのかなあ
MediaInfoのディレイとも微妙に違ってるし
それが分かれば
自分用の自動化バッチが組めるんだが…
0427デフォルトの名無しさん
2010/12/12(日) 22:49:060428デフォルトの名無しさん
2010/12/12(日) 22:50:59ぐぐれ
……
ttp://www.geocities.co.jp/SiliconValley-SanJose/1227/index.html
0429デフォルトの名無しさん
2010/12/13(月) 15:30:590430デフォルトの名無しさん
2010/12/13(月) 16:09:02428だけど、ちげーよwww
こういう時はぐぐれとだけ言えばいいのか?
0431デフォルトの名無しさん
2010/12/14(火) 22:26:53>>428じゃなけどこうすればいいんじゃね
http://lmgtfy.com/?q=%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E5%85%A5%E9%96%80
http://gugurekasu.com/
0432デフォルトの名無しさん
2010/12/14(火) 22:39:54ありがとう
なるほど……
今度からそれやってみるわ
少しぐぐれば分かることきいてる人には回答しないのが一番かな
0433デフォルトの名無しさん
2010/12/14(火) 22:52:450434デフォルトの名無しさん
2010/12/15(水) 06:22:58その上のサイトの機能を下のサイトでやってほしいところだw
0435デフォルトの名無しさん
2010/12/16(木) 20:30:47ちょっと愚痴らせてくれ…
以前、バッチだけで年月日の取得を組んだんだ…
月またがりと、うるう年判定、年末年始は取得しない、など。
そして、前日と翌日も取得するように作ったら、
100行くらいになってしまったのさ…
そしたら、今度は平日のみを算出するように言われてね…
XP以降、バッチに曜日がでないだろ?
途方に暮れて、しかたなくググってみたのさ。
そしたら、VBSでカンタンにできるじゃないか。
そしたら、たった5行で終わってしまった。
がんばってきたことが無駄だったのか、それともナニカの糧になったのか、
正直わからない。
こういうとき、おまいらはどう考える?
ちなみに、今は平日にプラスして、祝日判定も入れた上での
前日の平日を取得するものをVBSと組み合わせて作成中。
ちょっとつまり掛けてるが、ドウシヨウもなくなったらまた質問させて欲しい。
0436デフォルトの名無しさん
2010/12/16(木) 20:34:040437デフォルトの名無しさん
2010/12/16(木) 21:08:37CやVBSで組んだほうがラクなのに、コンパイラなどを使ってはいけないという正当な理由があるの?
0438デフォルトの名無しさん
2010/12/16(木) 21:33:57間抜けだな
0439デフォルトの名無しさん
2010/12/16(木) 22:25:23「新しい知識が身に付いた!」と喜ぶ方が
色々と幸せになれる気がする
0440デフォルトの名無しさん
2010/12/17(金) 02:57:28しかし色々考えるのって結構楽しいだろ
0441デフォルトの名無しさん
2010/12/17(金) 03:44:01Windowsでしか使えないバッドノウハウが増えてもちっとも嬉しくないんだが
0442デフォルトの名無しさん
2010/12/17(金) 09:55:25俺もそうだな。
Windowsでしか動かさなさそうで、batやwshの方が楽ならそっちでさっくり書く
ちょっと面倒だなというときは、LLスクリプトで書いたり
臨機応変に対応してる。
batだけにこだわるとAPIやスクリプトのライブラリ使ったら一瞬で終わることも、
下手するとえらく長くなることがあるからね
ちょっとした構文のど忘れが合った時もググるのが面倒なので、その場でスクリプトのワンライナー書いたりとか
ま、できさえすればいいのよ
batスクリプトだけにこだわるほど人生長くないぞw
0443デフォルトの名無しさん
2010/12/17(金) 09:56:33o >>437
変にレスしてしまった
0444デフォルトの名無しさん
2010/12/17(金) 10:09:360445デフォルトの名無しさん
2010/12/17(金) 16:01:34cscript wscriptみたいにcmd wmdつくれよ
0446デフォルトの名無しさん
2010/12/17(金) 16:10:440447デフォルトの名無しさん
2010/12/17(金) 21:42:41たしかにそんなに容量を食うことは間抜けではある。
しかし、考えてるときは正直楽しかったのも事実。
うし、元気でた。
バッチにこだわる理由としては
それ以外を禁止されたから。
先人がそれで新聞沙汰になるほどのミスをしたので、
バッチをなにも知らなかった自分にバッチだけで作れといわれてね。
まぁ、できたとたんクビになったが。
今は新天地で培ったものを駆使してる。
バッチ作製は自分が楽したいからが本音だが
それで作業時間かすごく減ったので、もっとがんばりたいと思う。
ちなみに、平日、祝日判定を取り込んだモノが40行くらいで今日できあがった。
祝日テーブル参照とかバッチ内でVBS書きだしとかしてるけど、無事動いた。
朝にレス読んで元気でて、ちょっとクールダウンしたらすらっと書けたのにビックリだ。
おまいらのおかげだ。ありがとう。
0448デフォルトの名無しさん
2010/12/17(金) 21:46:12バグのあるスクリプトを盛大に走らせちゃったとかかな?
0449デフォルトの名無しさん
2010/12/17(金) 21:51:250450デフォルトの名無しさん
2010/12/17(金) 22:08:50○架空請求書
0451デフォルトの名無しさん
2010/12/17(金) 22:08:530452デフォルトの名無しさん
2010/12/17(金) 23:50:300453デフォルトの名無しさん
2010/12/18(土) 00:19:330454デフォルトの名無しさん
2010/12/18(土) 00:20:50どう考えても道路を規制して誰も通れなくするのが正しい
0455デフォルトの名無しさん
2010/12/18(土) 01:08:210456デフォルトの名無しさん
2010/12/18(土) 14:36:48set myenv=1
と記述してログイン時に呼び出して全ユーザープロセスに反映させる方法ないですか。
システムの環境変数と同じ扱いにしたいです。
c:\autoexec.batに記述すればできたけどもうちょっと穏当にやりたいです。
0457デフォルトの名無しさん
2010/12/18(土) 15:43:470458デフォルトの名無しさん
2010/12/18(土) 16:11:17できたpsdファイルを見るとレイヤーの透明部分がロックされてしまいます。
ロックされないで合成する方法かあるいは出来たpsdファイルのロックを
プロンプトの命令で外す方法がありますか?
↓自分がやった透明部分がロックされてしまうコマンド
convert henkan_mae.png henkan_go.psd
0459デフォルトの名無しさん
2010/12/18(土) 17:30:480460デフォルトの名無しさん
2010/12/18(土) 17:43:47どこのスレに行けばいいですか?
0461デフォルトの名無しさん
2010/12/20(月) 22:25:35if %hoge%=""(
call .\hoge2.bat
)
とやるとhoge2.batを読みに行かず、
「コマンドの構文が誤っています」
と出てくるのですが、
どのようにして外部ファイルをロードさせればいいのでしょうか
0462デフォルトの名無しさん
2010/12/21(火) 02:00:400463デフォルトの名無しさん
2010/12/21(火) 02:25:13申し訳ありません。
if "%hoge%"=""(
の状態です。
0464デフォルトの名無しさん
2010/12/21(火) 07:29:47>>462
0465デフォルトの名無しさん
2010/12/21(火) 09:50:08= と == は同じじゃないよ
ちなみに使えるなら
if not defined hoge
こっちもいい。
0466デフォルトの名無しさん
2010/12/21(火) 10:59:34てかデバッグするときに@echo offするな
0467デフォルトの名無しさん
2010/12/21(火) 12:25:25申し訳ありません。
if "%hoge%"=="" (
でうまく行きました。
また、 @echo off コマンドはなし。
各所にpauseで処理の流れを見ていました。
話変わりますが、私はデバッグに
@echo off(問題ない部分) @echo on pause echo %変数名%
を組み合わせて利用しています。
>>413,414
ニコ動画作成wikiでコマンドラインで簡単にエンコードできる
つんでれんこ というの見ましたが・・・
変な質問してしまって申し訳ありません。
お詫びにご存知の方もいらっしゃると思いますがとりあえずこれを。
http://otnx.jp/CMD/FrontPage/
0468デフォルトの名無しさん
2010/12/21(火) 20:47:23直リンだし。
腹いせで罠サイトでも貼った?
0469デフォルトの名無しさん
2010/12/21(火) 20:51:270470デフォルトの名無しさん
2010/12/21(火) 21:30:03知らんのか?
それでよくここに来てるなw
0471デフォルトの名無しさん
2010/12/21(火) 22:19:49オウフ 知らなかったよ
自分はこことかみて勉強したからさ…
DOSプロンプト活用相談室LOG
http://fpcu.on.coocan.jp/dosvcmd/bbs/log/
0472デフォルトの名無しさん
2010/12/21(火) 22:31:520473デフォルトの名無しさん
2010/12/21(火) 22:47:210474デフォルトの名無しさん
2010/12/22(水) 08:28:08専ブラならhなど無くてもクリックできるし、
その時Refererを切ってくれるかどうかなんて信用できん。
0475デフォルトの名無しさん
2010/12/22(水) 16:13:51ttp://fpcu.on.coocan.jp/dosvcmd/bbs/log/
を
ttp://ime.nu/fpcu.on.coocan.jp/dosvcmd/bbs/log/
に書き換える。
hを抜かない奴が、只の馬鹿なだけ。
0476デフォルトの名無しさん
2010/12/22(水) 16:39:20の文字が読めないバカ。
つーか、汎用ブラウザで2chにアクセスする方が
ずーっと迷惑だっての。
0477デフォルトの名無しさん
2010/12/22(水) 16:40:402chにアクセス、じゃなくて
read.cgiを呼び出す、だな。
そもそも、ime.nuの書き換えはread.cgiが行ってるんだから。
それすら知らないみたいだけど。
0478デフォルトの名無しさん
2010/12/22(水) 17:00:082chの仕様が気に入らんなら運営に文句いっとけ
0479デフォルトの名無しさん
2010/12/22(水) 17:09:36アサッテ講釈乙
0480デフォルトの名無しさん
2010/12/24(金) 12:18:25新聞沙汰になる用途ならちゃんとテストもかけよとww
かくいう俺もですね
0481デフォルトの名無しさん
2010/12/25(土) 04:28:09set out = "temp"
echo %out%
これで表示されなくて小一時間悩んだわクソが
0482デフォルトの名無しさん
2010/12/25(土) 14:06:100483デフォルトの名無しさん
2010/12/25(土) 15:42:170484デフォルトの名無しさん
2010/12/25(土) 16:48:410485デフォルトの名無しさん
2010/12/25(土) 16:51:120486デフォルトの名無しさん
2010/12/25(土) 17:42:03いれていいよ いれたらはいるわな それを入れないで展開する方がおかしいわな
0487デフォルトの名無しさん
2010/12/29(水) 01:46:12バッチ処理で起動したソフトのウィンドウに
ショートカットキーを送る事は出来ませんよね?
0488デフォルトの名無しさん
2010/12/29(水) 02:16:210489デフォルトの名無しさん
2010/12/29(水) 11:06:360490デフォルトの名無しさん
2010/12/29(水) 12:47:360491デフォルトの名無しさん
2010/12/29(水) 13:31:52>>489 だめ
>>490 だめ
0492デフォルトの名無しさん
2010/12/29(水) 14:32:30ウインドウを持ったアプリにショートカット渡す話ならば、もはやbat関係ないな
部分的にAutoHotKeyとかAutoIt使うとか
sendkeyみたいなコマンドあればいんだろうが、タイミングはかって自動化するくらいになるとAHKが楽だな
0493デフォルトの名無しさん
2010/12/29(水) 19:04:320495デフォルトの名無しさん
2010/12/30(木) 07:54:54ショートカットキーの意味でショートカットって言ってるんだろう
0496デフォルトの名無しさん
2010/12/30(木) 13:37:31嫌な仕様だなあ
どうすりゃいいんだか
&を含むファイル名は引数の取得に失敗する
&を含んでも半角スペースを同時に含む場合は期待通りに動く(全角スペースは駄目)
実験bat
-----------
@echo off
echo "%~1"
echo "%~2"
echo "%~3"
echo "%~4"
echo "%~5"
echo "%~6"
echo "%~7"
echo "%~8"
echo "%~9"
pause
exit
実験ファイル名
-----------
D&D新規テキストドキュメント(2).txt
D&D新規テキストドキュメント (2).txt
D&D新規テキストドキュメント (2).txt
新規&テキストドキュメント(2).txt
新規& テキストドキュメント(2).txt
新規 &テキストドキュメント(2).txt
0497デフォルトの名無しさん
2010/12/30(木) 14:39:070498デフォルトの名無しさん
2010/12/30(木) 16:00:02ttp://scripting.cocolog-nifty.com/blog/2009/02/post-b905.html
0499デフォルトの名無しさん
2011/01/05(水) 12:25:21アクセスが拒否されましたと怒られる
0500デフォルトの名無しさん
2011/01/05(水) 12:32:280501デフォルトの名無しさん
2011/01/05(水) 15:41:29ドライブをまたぐ移動は無理
0502デフォルトの名無しさん
2011/01/06(木) 16:14:180503デフォルトの名無しさん
2011/01/07(金) 14:48:120504デフォルトの名無しさん
2011/01/07(金) 19:48:180505デフォルトの名無しさん
2011/01/07(金) 23:26:450506デフォルトの名無しさん
2011/01/08(土) 18:49:170507デフォルトの名無しさん
2011/01/11(火) 16:43:23バッチファイル中(コマンドライン)からごみ箱に捨てるのはどうすればできますか?
0508507
2011/01/11(火) 16:45:41標準コマンドのみで実現したい。
0509デフォルトの名無しさん
2011/01/11(火) 16:52:11http://okwave.jp/qa/q3029518.html
0510デフォルトの名無しさん
2011/01/11(火) 16:56:520511デフォルトの名無しさん
2011/01/11(火) 17:12:20ありがとうございます。
バッチやめてcscriptに日和れというお告げかな。
0512デフォルトの名無しさん
2011/01/11(火) 17:13:09>>509-510
ありがとうございます。
バッチやめてcscriptに日和れというお告げかな。
0513デフォルトの名無しさん
2011/01/11(火) 17:35:15ttp://download.flamework.net/Remove-ToRecycleBin.ps1
0514デフォルトの名無しさん
2011/01/11(火) 17:44:24…てなことを言う腐れ管理部門もあるから厄介だ。
0515デフォルトの名無しさん
2011/01/11(火) 18:19:37一応Windows95でも使えるVBSは標準コマンドとして認めてもOKだろうが、
PowerShellは依然として時期尚早だと思う。
0516デフォルトの名無しさん
2011/01/11(火) 18:36:30if errorlevel NEQ 0 (
echo [ ERROR ] なんで>> Log.txt
) else (
echo [SUCCESS] 両方出るんだよ>> Log.txt
)
すまん、助けてくださいまし
0517507
2011/01/11(火) 18:38:05http://scripting.cocolog-nifty.com/blog/2007/04/post_57c8.html
に行き当たりました。
バッチファイルにcscriptを埋め込む技もパクリました。すごいことを考える人がいるもんだ。
0518516
2011/01/11(火) 19:16:53errorlevelと%errorlevel%ってかなり別物ってことですよね?
少なくともerrorlevelは変数じゃないと。
0519デフォルトの名無しさん
2011/01/11(火) 19:47:53括弧で分けたのが無意味。全部実行される。
set errorlevel=2
rem if errorlevel NEQ 0 (
echo [ ERROR ] なんで>> Log.txt
) else (
echo [SUCCESS] 両方出るんだよ>> Log.txt
)
こんなのと実質的に同じ。
if [not] errorlevel 〜 の構文と
if 文字列 比較 文字列 の構文ごっちゃにしたらダメ
0520516
2011/01/11(火) 19:56:21慣れないと危険ですね。
0521デフォルトの名無しさん
2011/01/11(火) 20:14:37mshta使えばワンライナでできるワン
0522デフォルトの名無しさん
2011/01/11(火) 20:18:22&&や||使った方が楽だよ
ttp://technet.microsoft.com/ja-jp/library/cc737438(WS.10).aspx
0524デフォルトの名無しさん
2011/01/12(水) 19:16:540525デフォルトの名無しさん
2011/01/12(水) 21:03:59バッチにドロップした引数(%*)を文字順ソートして変数にセットしたい
いろいろ試してみたのですが
もうどう書けばいいのかわかりません。。
@echo on
setlocal enableextensions disabledelayedexpansion
set ARG=%*
set ARG=%ARG:!=?%
echo=%ARG%
pause
(for %%I in (%ARG%) do echo "%%~I")|sort
pause
exit /b
とりあえずこれでソートは出来てるようなのですが
これをARGにセットしなおそうと
for %%A in ('for %%I in (%ARG) do echo "%%~I")|sort') do call :SUB %%A
:SUB
set ARG=%ARG% "%~1"
goto :EOF
とかにするとin()部が展開出来ないようなのです
in ('(コマンド)')とか
/f usebackqオプションと``を使ってみたり
in ('call :SUB1')とか
思いつく限りでいろいろ試してみたのですがダメでした
教えて君で申し訳ないのですが、もう自分では限界です
わかる方教えてくださいお願いします
0526525
2011/01/12(水) 21:18:52for %%A in ('(for %%I in (%ARG%) do echo "%%~I")|sort') do call :SUB %%A
(と%が抜けていました
あと、もうひとつ質問です
後からやサブルーチンで
setlocal enabledelayedexpansion を使えるように
set ARG=%*
set ARG=%ARG:!=?%
と!を?に置換したのですが
for %%I in ()で展開されると?が本来のパスやファイル名の!に戻っているようなのです
set ARG=%ARG:!=?%
で!を?に置き換えるのは無意味なのでしょうか?
0527デフォルトの名無しさん
2011/01/12(水) 23:47:230529デフォルトの名無しさん
2011/01/13(木) 02:17:57ping localhost -n 10 > nul
0530デフォルトの名無しさん
2011/01/13(木) 17:28:560531デフォルトの名無しさん
2011/01/14(金) 15:35:420532デフォルトの名無しさん
2011/01/17(月) 17:42:39環境変数PATHの中にProgram Files (x86)みたいな
括弧つきのパスがあると今まで使ってたバッチが動かない……
思いつく回避方法は環境変数PATHを弄って
Program Files (x86)をPROGRA~2に変えるみたいに
DOSの8.3形式との互換性ある名前に変えちゃうぐらいしかないんだが、
他に良い回避方法ってないのかな?
0533デフォルトの名無しさん
2011/01/17(月) 18:43:510534デフォルトの名無しさん
2011/01/17(月) 18:55:10糞ワロタ
0535デフォルトの名無しさん
2011/01/17(月) 19:33:480536デフォルトの名無しさん
2011/01/17(月) 19:34:330537デフォルトの名無しさん
2011/01/17(月) 19:37:190538デフォルトの名無しさん
2011/01/17(月) 19:42:580539デフォルトの名無しさん
2011/01/17(月) 20:19:070540デフォルトの名無しさん
2011/01/17(月) 20:55:24for %%V in (%PATH%) do (echo %%V)
みたいのが、そのままじゃ動かなくなる。
0541デフォルトの名無しさん
2011/01/17(月) 21:29:44別にx64環境の前からパスに括弧を入れる事は可能だったね。
つまるところx64環境になったのが問題なのではなく以前から使っていた
バッチにバグがあったのが表面化しただけとも言えるな。
x64環境になった事とpathに括弧が入ることの関連性は(x86)だけだな。
「みたいな」と言いつつ、その実「という」辺りが適当なんではないかな。
0542デフォルトの名無しさん
2011/01/17(月) 21:41:15Program Files下に入れる時点でアホ
0543デフォルトの名無しさん
2011/01/17(月) 21:45:300544デフォルトの名無しさん
2011/01/17(月) 21:47:18動くだけでも幸せと思っとけ
0545デフォルトの名無しさん
2011/01/17(月) 22:42:57set TEMP_PATH=%PATH:;=^";^"%
for %%V in ("%TEMP_PATH%") do (echo %%~V)
set TEMP_PATH=
括弧つくとダメな条件が良くわからん。
0546デフォルトの名無しさん
2011/01/17(月) 23:03:35たとえば引数が、123¥456¥789だったら、
\をセパレータにして123 456 789 に分けて変数に格納する感じで。
0547デフォルトの名無しさん
2011/01/17(月) 23:13:50何を気取ってんだよ厨房がw
0548デフォルトの名無しさん
2011/01/17(月) 23:23:19setlocal enabledelayedexpansion
set TEMP=123\456\789
:loop
for /f "delims=\ tokens=1*" %%i in ("!TEMP!") do (
echo %%i
set TEMP=%%j
goto loop
)
みたいな感じでできるけど。
0549デフォルトの名無しさん
2011/01/18(火) 00:07:25ありがとうございます!
0550デフォルトの名無しさん
2011/01/18(火) 00:27:17引っ込んでろ。バカ。
0551デフォルトの名無しさん
2011/01/18(火) 04:32:540552デフォルトの名無しさん
2011/01/18(火) 12:55:03うちだと、それやると古いツールが""ついたままの名前で扱っちゃうんだな。
その手の古いツールがなければそれでもいいけど。
>>548
TEMP破壊すんなよ……
0553デフォルトの名無しさん
2011/01/18(火) 13:05:28それなら、その古いツールはカッコだけじゃなくて、空白も問題になるだろ。
0554デフォルトの名無しさん
2011/01/18(火) 13:34:09古いツールはバッチから呼び出されるだけでバッチじゃないので、
空白や括弧だけなら問題にならないんだわ。
0555デフォルトの名無しさん
2011/01/18(火) 14:28:04かつ、バッチ中では""でくくらないと駄目という事か?
> 古いツール.exe c:\Program files (x64)\hoge
それなら、古いツールの呼び出しはパス演算子で変換してやればいい。
for %%n in ("c:\Program Files (x86)") do 古いツール.exe %%~n
for %%n in ("c:\Program Files (x86)") do 古いツール.exe %%~sn
0556デフォルトの名無しさん
2011/01/18(火) 15:02:42set PATH="C:\Program Files (x86)\hoge";C:\windows;C:\windows\system
みたいな回避法とると、バッチは手直しせずに通るが
古いツールの中には動かないのが出てくるって話。
0557デフォルトの名無しさん
2011/01/18(火) 16:23:30「setlocal」って書いてあるけど、>>552には見えないのかな?
0558デフォルトの名無しさん
2011/01/18(火) 16:28:32いい加減なことを言って、んなもんあるものか あったとすればお前が作った糞ツールだろ
0559デフォルトの名無しさん
2011/01/18(火) 16:33:17ttp://technet.microsoft.com/ja-jp/scriptcenter/ff576179
0560デフォルトの名無しさん
2011/01/18(火) 16:38:57田舎ヤクザが何を言っても説得力なし。
一生底辺をさまよってろ。
0561デフォルトの名無しさん
2011/01/18(火) 17:20:2765bitに32bitアプリを入れるときはフォルダ名に(x86)をつけなきゃーなんてね
0562デフォルトの名無しさん
2011/01/18(火) 18:05:45こまけぇこたあいいんだよ。
ところで、64bitならわかるが65bitってなに?
0563デフォルトの名無しさん
2011/01/18(火) 18:28:17x64はx86のtypoだろ
0564デフォルトの名無しさん
2011/01/18(火) 19:05:43&()[]{}^=;!'+,`~はつけるな―ってーの
0565デフォルトの名無しさん
2011/01/18(火) 19:09:57http://lmgtfy.com/?q=x64
0566デフォルトの名無しさん
2011/01/18(火) 20:35:03引数が123¥4 6¥789だと4で処理が終わってしまうのですが、
引数で渡す段階で、ダブルクォートで囲む以外に対処は無理でしょうか?
0567デフォルトの名無しさん
2011/01/18(火) 20:46:56> for %%V in (%PATH%) do (echo %%V)
> みたいのが、そのままじゃ動かなくなる。
もともとまともに動かんだろ
0568デフォルトの名無しさん
2011/01/18(火) 20:59:270569デフォルトの名無しさん
2011/01/18(火) 22:01:24おぉ、うまくいきました。
ありがとうございます。
もう1点お聞きしたいのですが、このやり方だと、
引数が複数あると他の引数も渡ってしまいます。
1個目の引数だけをこの形で入れることは可能でしょうか?
0570デフォルトの名無しさん
2011/01/18(火) 22:30:37ダブルクオートで囲わないという前提に立つ限り
スペースの後が1個目の引数の続きなのか2個目の
引数なのかはあなた以外にはわからないのでは?
0571デフォルトの名無しさん
2011/01/18(火) 22:43:47引数はカンマ区切りで判断すると思ってましたが、スペースで区切るんですか。
無知で申し訳ない…
0572デフォルトの名無しさん
2011/01/18(火) 23:57:00勘印まちがったのかのう
0573デフォルトの名無しさん
2011/01/19(水) 21:47:050574デフォルトの名無しさん
2011/01/20(木) 15:19:100575デフォルトの名無しさん
2011/01/26(水) 09:49:06このとき画面に表示されるログをファイルに保存したいと思います。
どのように記述を行えばよいでしょうか?
バッチファイル初心者です。
0576デフォルトの名無しさん
2011/01/26(水) 15:28:280577デフォルトの名無しさん
2011/01/26(水) 18:34:050578デフォルトの名無しさん
2011/01/26(水) 19:02:01本物バッチファイル > ログファイル 2>&1
というバッチファイルを作ればいい。
0579デフォルトの名無しさん
2011/01/26(水) 19:11:380580デフォルトの名無しさん
2011/01/26(水) 19:50:570581デフォルトの名無しさん
2011/01/27(木) 01:36:04set 変数名=%変数名:==?%
と書くと通らなくて
set 変数名=%変数名:^==?%
や
set 変数名=%変数名:^^==?%
set 変数名=%変数名:^^^^==?%
とかも試したんだけど置換されなかった
書き方間違えてるなら教えてください
0582デフォルトの名無しさん
2011/01/27(木) 01:42:230583デフォルトの名無しさん
2011/01/27(木) 02:09:24ありがと
すでに何十時間も無駄にしたけど
さらに何日か無駄にするとこだったよ
0584デフォルトの名無しさん
2011/01/27(木) 13:13:08%変数名:~2,1%
みたいに1文字ずつ取り出して、比較して、結合してやればいいよ
0585デフォルトの名無しさん
2011/01/27(木) 14:31:47forの括弧の中で=がスペースに置換されて出力できない…こんな仕様だったっけ?
set str=abc=def
for /f "delims=" %%i in ('echo %str%') do echo %%i
結果
abc def
??
0586デフォルトの名無しさん
2011/01/27(木) 18:19:380587デフォルトの名無しさん
2011/01/27(木) 18:40:490588デフォルトの名無しさん
2011/01/28(金) 17:02:57goto EXIT
:sub
echo %1
goto :EOF
これで処理をしていったら0001.jpg 0002.jpg 0003.jpgのあたりがどうしてもばらばらの順番で読み込まれてしまう時がある。
dir /onで調べると問題なく表示されるんだけど、何回やっても同じ結果になってしまう
(圧縮しておいてまた解答してやり直しても同じ結果となってしまった。ひどいものだと一度読み終えたものまで読み込んでいる。)
なんでだろう
0589デフォルトの名無しさん
2011/01/28(金) 18:19:560590デフォルトの名無しさん
2011/01/28(金) 19:12:39echo >>%0
みたいなもんだな
0591デフォルトの名無しさん
2011/01/29(土) 16:59:03再帰?
call使えばバッチ内に書けるよ
0592デフォルトの名無しさん
2011/01/29(土) 18:50:35for /f "delims=" %%a in ('dir /b /on *.jpg') do call :sub "%%a"
0593デフォルトの名無しさん
2011/01/30(日) 14:23:26FLAG_QUIETLEVELは2以上なら正常終了時に確認しない
3以上ならエラー時にも確認しない
■A
if "%ENCERROR%" == "1" (
if not %FLAG_QUIETLEVEL% geq 3 ( pause )
exit /b 1
)
if not %FLAG_QUIETLEVEL% geq 2 ( pause )
exit /b 0
■B
if "%ENCERROR%" == "1" (
if not %FLAG_QUIETLEVEL% geq 3 ( pause )
) else (
if not %FLAG_QUIETLEVEL% geq 2 ( pause )
)
exit /b %ENCERROR%
■C
if "%ENCERROR%" == "1" (
if not %FLAG_QUIETLEVEL% geq 3 ( pause )
exit /b 1
)
if "%ENCERROR%" == "0" (
if not %FLAG_QUIETLEVEL% geq 2 ( pause )
exit /b 0
)
A,B,C,でどれが一番美しいかな?もしくはわかりやすいのはどれ?
また他に俺ならこう書くってのがあれば教えて
0594593
2011/01/30(日) 14:28:23()の中はインデントされてると思って読んで。
0595デフォルトの名無しさん
2011/01/30(日) 15:55:310596デフォルトの名無しさん
2011/01/30(日) 16:46:53FLAG_QUIETLEVELが自然数であることを仮定して
goto f%FLAG_QUIETLEVEL%
goto f3
:f1
pause
goto f3
:f2
if "%ENCERROR%"=="1" pause
:f3
exit /b %ENCERROR%
うーんなんだか無理やり感があるなあw
0597デフォルトの名無しさん
2011/01/30(日) 16:50:13レスしたくない は含まれなかったの?
0598デフォルトの名無しさん
2011/01/30(日) 17:09:52if %FLAG_QUIETLEVEL% gtr 2 (goto 3) else (goto %FLAG_QUIETLEVEL%)
:2
if "%ENCERROR%"=="0" goto 3
:1
pause
:3
exit /b %ENCERROR%
こんなんでもいけるな
0599デフォルトの名無しさん
2011/01/30(日) 17:29:50フラグで分岐じゃなくてエラー出たときに
set encerror=%encerror% ファイルが無いよ
みたいな感じで追加していって最後で
if defined encerror call errorfunc %encerror%
みたいなことやってる。
0600デフォルトの名無しさん
2011/01/30(日) 18:31:14これだと何してるか分かりやすいけど
FLAG_QUIETLEVELの値の範囲次第ではラベルの量がw
goto :FQL_%FLAG_QUIETLEVEL%
:FQL_2
if "%ENCERROR%" == "0" ( goto :FQL_3 )
:FQL_1
:FQL_0
rem (マイナス値があればここにラベル)
pause
rem (6以上があるならここにラベル)
:FQL_5
:FQL_4
:FQL_3
exit /b %ENCERROR%
0601デフォルトの名無しさん
2011/01/30(日) 19:23:350602デフォルトの名無しさん
2011/01/30(日) 19:54:560603デフォルトの名無しさん
2011/01/30(日) 20:32:57よくそんなの思いつきますねーすごいですね。
>>602
ちゃんと動く
FLAG_QUIETLEVEL 0 1 2 3 4
ENCERROR 1 0 1 0 1 0
差 0 1 1 2 2 3
pauseの範囲 あり ←|→ なし
if errorlevel文は "以上" で真だから
ENCERROR - FLAG_QUIETLEVEL で符号を反転
cmd /c exit はif errorlevelでpauseかけるかどうかの判定に使ってるだけだから
この下にexit /b %ENCERROR%が要るけどちゃんと動作するよ
set /a encerror-flag_quietlevel
こんなの通らないと思ってたけど
for in ('')の中ではいいみたい
set /a %%I=encerror-flag_quietlevel
って意味になるみたいだよ
でもスクリプトみてわかりやすいかどうかと言えば問題あるけど
ただただ感心というか感動というか感嘆、ほんとによく思いつくなぁーと。
その発想力がうらやましいです。
0604デフォルトの名無しさん
2011/01/30(日) 20:51:42単純に
do if %%I geq -1 pause
でいいんじゃね?
0605デフォルトの名無しさん
2011/01/30(日) 20:56:49> set /a encerror-flag_quietlevel
> こんなの通らないと思ってたけど
> for in ('')の中ではいいみたい
> set /a %%I=encerror-flag_quietlevel
> って意味になるみたいだよ
違う。
コマンドプロンプト上でset /a 1-2ってやってエンター押してみ。
0606デフォルトの名無しさん
2011/01/30(日) 21:33:44プログラミングの基礎ぐらいやっておかないと恥かくよ
0607デフォルトの名無しさん
2011/01/30(日) 22:02:01if %I% geq -1 pause
0608デフォルトの名無しさん
2011/01/30(日) 23:11:41動いた!ありがとう!!
こんな方法があるのか・・・
0609デフォルトの名無しさん
2011/01/31(月) 08:29:58set /a 1-2
と同じになるのは
set /a %ENCERROR% - %FLAG_QUIETLEVEL%
と書かなきゃならないと思ってたけど
試してみたら set /a では%で展開しなくても
環境変数名で計算してくれるみたいですね
知らなかったです
0610デフォルトの名無しさん
2011/01/31(月) 08:35:28if not ( set /a FLAG_QUIETLEVEL-ENCERROR ) geq 2 ( pause )
とか思ったけどこんな()の使い方は出来ないみたいですね
>>607の例だと
■環境変数をもうひとつ用意して2行の場合
差が2以上なら確認しない
set /a FLQ_EE= FLAG_QUIETLEVEL - ENCERROR
if not %FLQ_EE% geq 2 ( pause )
差が2未満なら確認する
if %FLQ_EE% lss 2 ( pause )
>>604のを>>601に取り入れると
■1行でなるべく環境変数を作りたくない場合
for /f %%I in ('set /a FLAG_QUIETLEVEL - ENCERROR') do if not %%I geq 2 ( pause )
if errorlevel文を使わないならわざわざ符号を反転させなくてもいいですね
>>600の例だと FLAG_QUIETLEVEL が実数の場合、実質無理だけど
これなら問題なくなる
>>593の質問は if "%ENCERROR%" == で else でなく
0と1を明示したほうがわかりやすいか?ってことと
exit はなるべく一箇所にしたほうがいいかな?ってことだったんだけど
思わぬ流れになりました
にしても差で pause の範囲を区切れると気付いた >>601は
やっぱりすごいですね
0611デフォルトの名無しさん
2011/01/31(月) 13:36:07バッチファイルでは1行ごとにチェックして分岐するしかないかね?
0612デフォルトの名無しさん
2011/01/31(月) 14:03:08> 他の言語だとエラーで中断したり、プロンプト出して継続したりできるけど、
「言語」そのものにそういう機能があるわけじゃないから。
0613デフォルトの名無しさん
2011/01/31(月) 16:18:370614デフォルトの名無しさん
2011/01/31(月) 16:34:150615デフォルトの名無しさん
2011/01/31(月) 16:40:09そこはpauseにすべきでは
0616デフォルトの名無しさん
2011/01/31(月) 16:42:280617デフォルトの名無しさん
2011/01/31(月) 16:58:09そういうときはps1に
0618デフォルトの名無しさん
2011/01/31(月) 19:38:570619デフォルトの名無しさん
2011/01/31(月) 21:27:57子供は来なくていいから
0620デフォルトの名無しさん
2011/01/31(月) 23:06:26年寄りは年金受給前にさっさとs
0621デフォルトの名無しさん
2011/02/01(火) 02:08:17echo 1
echo 2
echo 3
0622デフォルトの名無しさん
2011/02/01(火) 06:14:05いや、むしろ ping 0 > nul を何行か続けるほうが良いのでは?
0623デフォルトの名無しさん
2011/02/01(火) 13:47:09:loop
goto loop
のほうが良いのでは?
0624デフォルトの名無しさん
2011/02/02(水) 03:31:43コンソールの桁数を日本語モードでも英語モードでも取得したくて
結論から言うと
for /f "tokens=1,* delims=: " %I in ('mode con ^| findstr /r "Columns 桁数"') do echo=%J
で目的の動作になるんだけど
findstrに /r をつけなければ何も表示されない
プロンプトで
mode con | findstr "Columns"
mode con | findstr "桁数"
はそれぞれちゃんと表示されるんだが
mode con | findstr "Columns 桁数"
とすると何も表示されない
ググったりしてみてもなんでダメなのかわからなかった
ヘルプには
たとえば、FINDSTR "hello there" x.y と指定した場合は、ファイル x.y で "hello"
または "there" が検索されます。
とあるから findstr "Columns 桁数" で動くはずだと思うんだけど
なんで /r つけて正規表現としなきゃならないか
わかる人が居るなら説明してほしい
0625デフォルトの名無しさん
2011/02/02(水) 04:28:500626デフォルトの名無しさん
2011/02/02(水) 06:39:13仮にコードページの問題で
USモードの時に "桁数" が通らない
ってならわかる
けれどそれだとJPモードで
mode con | findstr "Columns 桁数"
が表示されないのは説明つかないんじゃないかな?
0627デフォルトの名無しさん
2011/02/02(水) 06:48:49いや、>>625は「桁数」の文字を見て脊髄反射で書いただけだと思うw
0628デフォルトの名無しさん
2011/02/02(水) 12:15:25mode con | findstr /r "桁数 コード"
この2つの結果が違うってのもよくわからんな
0629デフォルトの名無しさん
2011/02/02(水) 13:51:35http://technet.microsoft.com/ja-jp/library/cc755405(WS.10).aspx
>findstr を使うと、ASCII ファイルで検索文字列と正確に一致するテキストを検索できます。
今回の例では「桁」がダメ文字のようだが、「あ」とかも上手く検索できないっぽい
0630デフォルトの名無しさん
2011/02/02(水) 16:49:50ヨーロッパでは?
そもそもchcp 437でやればどこでもおkだろwと脊髄反射で書いただけ
findstr "Columns 桁数" で非英数字は空白扱いで無視される /rは非英数字を扱う
0631624
2011/02/02(水) 17:15:21でもないのにどうしてなんだと思ったけど
桁 8C 85
数 90 94
あ 82 A0
行 8D 73
○ findstr "桁"
○ "数"
× "CON 桁" "桁 CON"
× "CON 数" "数 CON"
○ "CON 行" "行 CON"
検索文字列がひとつの場合の時は大丈夫だけど
検索文字列が複数個になるとASCIIの範囲(0x7f)までしか
検索文字として認識しなくなってるのかもね
文字が1バイト目2バイト目共に7F以上のものばかりになるとダメってことかな
/rで正規表現としてみてる場合はそうではなくなると。
やっと納得いったよ>>629ヒントありがとう
>>630
>非英数字は空白扱いで無視される /rは非英数字を扱う
全てが無視されるわけではありません。ちゃんと確認してから発言しなさい。
0632デフォルトの名無しさん
2011/02/02(水) 17:19:57だから
>findstr "Columns 桁数" でと言ってるだろw 空白区切りのときってこと
ちゃんと確認してから発言しなさい。
0633デフォルトの名無しさん
2011/02/02(水) 19:23:11× 幵 9B F2
ちゃんと確認してから発言しなさい。
0634デフォルトの名無しさん
2011/02/02(水) 21:31:370635デフォルトの名無しさん
2011/02/02(水) 22:15:01findstr /r "Columns 桁数"
0636デフォルトの名無しさん
2011/02/02(水) 22:21:06echo 速度|findstr "速 hoge"
echo 試験|findstr "試 hoge"
echo 試験|findstr "試験 hoge"
echo 試験|findstr "止*血*ア hoge"
0637デフォルトの名無しさん
2011/02/02(水) 22:45:220638デフォルトの名無しさん
2011/02/02(水) 23:09:24mode con | findstr /c:Columns /c:桁数
0639デフォルトの名無しさん
2011/02/02(水) 23:12:47サクっと他のまともなスクリプトに投げてしまったほうがいい
0640デフォルトの名無しさん
2011/02/02(水) 23:48:54指定ディレクトリにまとめたいです
setlocal enabledelayedexpansion
set N=0
for /f "delims=" %%R in ('dir /s /ad /b ^| sort /r') do (
set /a N=!N!+1
ren "%%R" !N!
)
for /f "delims=" %%M in ('dir /b /a-d /s') do move %%M .
endlocal
上記コマンドで、大体はうまくいくんですが
ディレクトリ名に ! を持つディレクトリでエラーが出てしまいます
renコマンドの対象ディレクトリ名の特殊文字を無効化する方法を教えてください
0641デフォルトの名無しさん
2011/02/03(木) 00:06:32for /f "delims=" %%R in ('dir /s /ad /b ^| sort /r') do (
set /a N=N+1
CALL ren "%%R" %%N%%
)
for /f "delims=" %%M in ('dir /b /a-d /s') do move %%M .
0642デフォルトの名無しさん
2011/02/03(木) 00:07:37でもよい
0643デフォルトの名無しさん
2011/02/03(木) 00:13:35正常動作しました、callは使ったこと無かったので盲点だった…
勉強になりました、、ありがとうございます
0644デフォルトの名無しさん
2011/02/03(木) 04:59:41参考URL:
環境変数を遅延展開する第3の方法とは?
http://scripting.cocolog-nifty.com/blog/2010/01/post-d209.html
環境変数の遅延展開を遅延展開する。
http://scripting.cocolog-nifty.com/blog/2008/11/post-c111.html
この辺知っておくとやりたいことが出来なくて困るというのは減ると思うよ
0645デフォルトの名無しさん
2011/02/04(金) 16:40:36参考URL:
@IT - @IT:Windows TIPS -- Tips:findstrで正規表現を検索する
http://www.atmarkit.co.jp/fwin2k/win2ktips/511findstr/findstr.html
0646デフォルトの名無しさん
2011/02/04(金) 18:33:08全然参考にならないものをしたり顔で出されても…
そんなもん皆先刻承知。そんなのが参考になると思ってるのはお前だけ。
0647デフォルトの名無しさん
2011/02/04(金) 18:41:22>そんなのが参考になると思ってるのはお前だけ。
だったら
>そんなもん皆先刻承知。
でない
おまえ論理的思考ができない所謂おばか?
0648デフォルトの名無しさん
2011/02/04(金) 19:02:37俺は論理的思考でこう読んだ
0649デフォルトの名無しさん
2011/02/04(金) 19:39:440650デフォルトの名無しさん
2011/02/04(金) 19:40:590651デフォルトの名無しさん
2011/02/04(金) 20:23:43645含めて皆先刻承知だが、それが参考になると思ってるのは645だけ
0652デフォルトの名無しさん
2011/02/04(金) 21:36:00論理的思考で考えてからう一度書いてね
0653デフォルトの名無しさん
2011/02/04(金) 22:03:140654デフォルトの名無しさん
2011/02/04(金) 23:02:21文字列を引数にして画面にOSD表示するようなソフトってないですかね。
0655デフォルトの名無しさん
2011/02/04(金) 23:09:00文字列の形をしたリージョンのウィンドウで作るのが普通なんですかね。
Win7とかで使えるのかな。
0656デフォルトの名無しさん
2011/02/05(土) 02:14:48いいから涙を拭けよ
0657デフォルトの名無しさん
2011/02/05(土) 13:13:03どうした、顔が真っ赤だぞ
0658デフォルトの名無しさん
2011/02/05(土) 16:19:49color c0
0659デフォルトの名無しさん
2011/02/05(土) 17:24:47で?
0660デフォルトの名無しさん
2011/02/05(土) 17:33:51>>658は、お前より百倍面白いことは確かだ。
>>658とは友達になりたいが、お前とは百万もらってもなりたくない。
0661デフォルトの名無しさん
2011/02/05(土) 17:38:22気の利いたツッコミもできないのなら黙ってろ禿脂
0662デフォルトの名無しさん
2011/02/05(土) 17:51:430663デフォルトの名無しさん
2011/02/05(土) 18:00:570664デフォルトの名無しさん
2011/02/05(土) 18:30:260665デフォルトの名無しさん
2011/02/05(土) 18:54:380666デフォルトの名無しさん
2011/02/05(土) 19:13:47>645からの流れのどこに面白い要素があったの?どこに気の利いたボケがあったの?
0667デフォルトの名無しさん
2011/02/05(土) 19:20:550668デフォルトの名無しさん
2011/02/05(土) 19:26:080669デフォルトの名無しさん
2011/02/05(土) 19:28:52お前にはあと10年理解できんだろう。諦めろ。
0670デフォルトの名無しさん
2011/02/05(土) 19:29:190671デフォルトの名無しさん
2011/02/05(土) 19:32:38これが面白い要素たっぷりの気の利いたボケか
0672デフォルトの名無しさん
2011/02/05(土) 19:34:100673デフォルトの名無しさん
2011/02/05(土) 19:34:560674デフォルトの名無しさん
2011/02/05(土) 19:40:17findstr /r "面白い要素 気の利いたボケ" 645からの流れ
0675デフォルトの名無しさん
2011/02/05(土) 19:46:40taskkillで複数立ち上がってるうちの特定のjavaw.exeのプロセスを殺したいんだけど
起動元のコマンドを特定する方法はある?
0676デフォルトの名無しさん
2011/02/05(土) 19:56:56なんで10年すれば理解できるん?
あ、答えなくていいです。諦めてますから
0677デフォルトの名無しさん
2011/02/05(土) 19:58:34で親プロセスID チェックするとか。
0678デフォルトの名無しさん
2011/02/05(土) 20:03:23その頃には大人になってるだろうから。
大人=成人?とか言うなよ。お前なら言いかねんが。
そんじゃお休み。
0679デフォルトの名無しさん
2011/02/05(土) 20:05:54ちょっとなに言ってるかわからないんですけど
0680デフォルトの名無しさん
2011/02/05(土) 20:11:53それでは出来ないですね。
親プロセスIDが知りたいんじゃないので…
例えば、javaw.exe -jar hoge.jar とかで起動してるプロセスを
外部から特定して殺したいって事です。
ウィンドウタイトルで区別できるかと思ったら軒並み
TrayMessageWindow
になってて判別不能。全部常駐アプリだからか。
0681デフォルトの名無しさん
2011/02/05(土) 20:12:44tasklist.exeはだめだけどtlist.exeなら親pidが分かるから
トリー表示もできたと思う
0682デフォルトの名無しさん
2011/02/05(土) 20:15:02>起動元のコマンドを特定する方法はある?
と言ったんだろ
0683デフォルトの名無しさん
2011/02/05(土) 20:15:05>>647さん、もう一度>>646と>>647の文章を読んで
よく考えてみたほうがいいですよ。
もしかして>>647さんって日本に来てまだ日が浅い外人さんなのでしょうか?
半島の人?それとも学会の人間なのかな?
もし日本の方なのだとしたら、あなたの国語力は小学生低学年にも満たないと思われます。
小学生低学年では文章を解体し説明するなんてことは出来ませんが
そんな間違った解釈をしたりはしていませんよ。
使っている文章や漢字などから推測すると小学生というわけでは無さそうですので
活字がメインの本などを読んでもっと国語力を養ったほうがいいです。
そんな程度の文章で間違った解釈をし、恥ずかしげも無くその間違った解釈を堂々と発表し
論理的な解釈が出来ていないのはあなたのほうなのに相手が間違っているなどと罵るようでは
あなたは、あなたの周囲の人間にかなりの迷惑をかけているはずです。
あなたがこの先社会に出て、無用な誤解などから周囲に迷惑をかけないためにも
そしてあなた自身の為にも、日本語をもっと勉強してください。
とりあえず>>647さんに>>646を論理的に読み解く為のヒントを与えてあげましょう。
「人称」を調べて、この場合の「皆」が何を指すのかをよく考えることです。
0684デフォルトの名無しさん
2011/02/05(土) 20:18:05SetWindowRgnの使い方覚えるか
0685デフォルトの名無しさん
2011/02/05(土) 20:24:07言葉がちょっとすれ違ったようですね。
(自分自身の)起動元、と思われたようですけど
起動(した)元、と書いたつもりでした。
0686デフォルトの名無しさん
2011/02/05(土) 20:24:38自分でできそうです。
0687675
2011/02/05(土) 20:30:27プロセスからそのプロセスを起動したコマンド全てを取得したい。
javaw.exe から javaw.exe -jar hoge.jar という元コマンド全体が欲しいということです。
0688デフォルトの名無しさん
2011/02/05(土) 20:31:34同じだろ
元を使うな
コマンドラインと言え
0689デフォルトの名無しさん
2011/02/05(土) 20:34:240690デフォルトの名無しさん
2011/02/05(土) 20:36:59自分自身の起動元とは書いてないんですけど。
自分ではない目的プロセスの親コマンドライン(親自体は終了してる)でも
問題は解決します。
0691デフォルトの名無しさん
2011/02/05(土) 20:39:18ドキュメントも読めないのか...
javaw.exe プロセス ID 与えたらその親プロセス ID 得られるだろ。
そもそもソース見れば、どうやって取得してるかもわかるだろうに...。
と書いてたら、コマンドラインがほしいのか...。
Win32_Process の CommandLine でできるんじゃね?
態度が気に入らんから、詳しくは教えないけど。
0692デフォルトの名無しさん
2011/02/05(土) 20:42:21どうも。解決しました。
0693デフォルトの名無しさん
2011/02/05(土) 20:50:03あっけなく解決したので自分が情けないですが、
あなたの助けは要らなかったようです。
0694デフォルトの名無しさん
2011/02/05(土) 21:38:03元を親に変えるな
親も使うな
ただのコマンドラインでええ
0695デフォルトの名無しさん
2011/02/05(土) 21:40:570696デフォルトの名無しさん
2011/02/05(土) 21:56:320697デフォルトの名無しさん
2011/02/05(土) 21:57:230698デフォルトの名無しさん
2011/02/05(土) 21:59:38"^"は残念ながらバッチではxorの演算子みたいですね
一応検索したりヘルプを読んだりしてみたのですがわかりませんでした
今は for /l 文を使って代用しています。
簡単に一発ポンでできる方法があるなら教えて欲しいです。
それともうひとつ。
Aという数の右からN番目のビット値Bを取得する
で、今はAとNを入力して関数電卓で結果が正しいかどうかを
確認しているのですが、0か1が出力されるはずなのに
32桁目が-1になってしまいます
こうすればもっと簡単にN番目のビット値を取得できるっていうのがありましたら
教えてください。
0699698
2011/02/05(土) 22:00:40@echo off
setlocal
:seta
set /p A="A=? "
rem set /a A=%A%
if not defined A goto :seta
:setn
set /p N="N=[1-32]? "
if not defined N goto :setn
if "%N%" == "end" exit /b
if %N% lss 1 goto :setn
if %N% gtr 32 goto :setn
rem ここから
if %N%==1 set /a B= "A&1" &goto :next
set X=1
for /l %%i in (2,1,%N%) do set /a X*=2
for /f %%i in ('set /a "(A&X)>>N-1"') do set B=%%i
rem ここまで
:next
echo A=%A%
echo N=%N%番目
echo B=%B%
goto :seta
0700デフォルトの名無しさん
2011/02/05(土) 22:23:330701デフォルトの名無しさん
2011/02/05(土) 22:35:20つ 32bit
0702698
2011/02/06(日) 06:39:25Aという数の右からN桁目のビット値Bが欲しい場合は
set /a B= "A>>N-1&1"
これだけでよかったみたいですね
なんでこんな単純なこと気付かなかったんだろうか。。
おはずかしい限りです
今はこんな感じでビット値全て表示して確認しています
test.bat
@echo off
setlocal enabledelayedexpansion
:loop
set /p A="A=[32bitINT|end]? "
if not defined A goto :loop
if "%A%" == "end" exit /b
set B=
for /l %%N in (0,1,31) do for /f %%C in ('set /a "A>>%%N&1"') do set B=%%C!B!
echo=%A%
echo=%B:~0,8% %B:~8,8% %B:~16,8% %B:~24,8%
goto :loop
rem -- ここまで --
32桁目って正なら0で負なら1ってことなのでしょうか?
それと今回は必要なかったのですがバッチでは累乗計算は for /l で乗算を繰り返すしかないですか?
0703デフォルトの名無しさん
2011/02/06(日) 15:03:100704デフォルトの名無しさん
2011/02/06(日) 16:16:160705デフォルトの名無しさん
2011/02/06(日) 17:34:500706デフォルトの名無しさん
2011/02/06(日) 18:01:30管理者として実行だろーけどGUIでやるしかねーよ
0707デフォルトの名無しさん
2011/02/06(日) 18:02:20ねーよ
0708デフォルトの名無しさん
2011/02/06(日) 18:04:550709デフォルトの名無しさん
2011/02/06(日) 18:17:070710デフォルトの名無しさん
2011/02/06(日) 18:32:190711デフォルトの名無しさん
2011/02/06(日) 18:33:340712デフォルトの名無しさん
2011/02/06(日) 19:34:35操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'nircmd.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0713デフォルトの名無しさん
2011/02/06(日) 21:30:590714デフォルトの名無しさん
2011/02/06(日) 22:16:270715デフォルトの名無しさん
2011/02/06(日) 22:30:360716デフォルトの名無しさん
2011/02/06(日) 22:36:220717デフォルトの名無しさん
2011/02/06(日) 22:49:360718デフォルトの名無しさん
2011/02/06(日) 23:03:57横からだけどWin7だからか、試してみたけど動かんなぁ…
RunDllってエントリが無いって言われる。
0719デフォルトの名無しさん
2011/02/06(日) 23:24:290720デフォルトの名無しさん
2011/02/07(月) 01:20:580721デフォルトの名無しさん
2011/02/07(月) 14:59:390722デフォルトの名無しさん
2011/02/07(月) 16:16:450723デフォルトの名無しさん
2011/02/07(月) 22:50:35↓こっちの方法はどうかな?ウチのWinXP(SP3)では>>717の代わりに使う事が多いんだが…
"C:\Program Files\Windows Media Player\mplayer2.exe" /play /close c:\windows\Media\tada.wav
0724デフォルトの名無しさん
2011/02/08(火) 00:25:510725デフォルトの名無しさん
2011/02/08(火) 01:17:590726デフォルトの名無しさん
2011/02/08(火) 05:38:330727デフォルトの名無しさん
2011/02/08(火) 09:58:53Win7にはmplayer2自体無いからな…
0728デフォルトの名無しさん
2011/02/08(火) 15:21:370729デフォルトの名無しさん
2011/02/08(火) 15:50:370730デフォルトの名無しさん
2011/02/08(火) 16:22:40[あいうえお-Category-かきくけこ]"のうち、Category部分をバッチに読み込んだ値に置換したいと思います。
○○.bat "あいうえお-Category-かきくけこ" "テスト2"
==
@echo off
set FileName=%~1
set Categ=%~2
set FileName=%FileName:Category=%Categ%%
echo ファイル名 %FileName%
%Categ%ではなく直接テスト2だと動くのですが、
置換先を読み込んだ値にしたい場合はどのようにすればよいのでしょうか?
0731デフォルトの名無しさん
2011/02/08(火) 16:31:060732デフォルトの名無しさん
2011/02/08(火) 16:36:560733デフォルトの名無しさん
2011/02/08(火) 17:45:48ありがとう。できました。
Callについていくつかググったところ、どこもバッチファイルを呼び出すと書いてありました。
バッチファイル内ではバッチファイルのみならず、バッチ的な動作である文字置換も
Callで呼び出さなければならないってことなんでしょうか?
0734デフォルトの名無しさん
2011/02/08(火) 18:03:280735デフォルトの名無しさん
2011/02/08(火) 18:18:10了解した。ありがとう。
0736デフォルトの名無しさん
2011/02/08(火) 22:00:47>>644
0737デフォルトの名無しさん
2011/02/08(火) 22:30:49自分で監視ループ作るの?
0738デフォルトの名無しさん
2011/02/09(水) 01:36:31http://twitter.com/udony/statuses/7396610887655426
0739デフォルトの名無しさん
2011/02/09(水) 23:57:33「英語圏以外の人たちのために、コマンドラインを英語モードで立ち上げるバッチファイル」というのを実行し、そのゲームをプレイしてから(おそらく)
バッチファイルが英語で実行されるようになってしまいました。
(なお、そのバッチ内容は↓)
@echo off
CHCP 437
mode con lines=25
cmd
検索してみて、CHCPというのが問題なのかと思い、
CHCP 932
というバッチファイルを実行しても、新しく作ったバッチファイルが英語で実行されます。
バッチファイルの実行画面の右クリックから「規定値」を見ると、コードページは日本語になっているのですが、
バッチファイルのプロパティは英語で実行されてしまいます。
スタートメニューからのコマンドラインは日本語になっています。
管理者として実行しても同じでした。
どうすれば以前のようにデフォルトが日本語でバッチを実行できるようになるでしょうか?
OS はwin7 です。
0740デフォルトの名無しさん
2011/02/10(木) 09:13:467にも該当するものがあるかどうかは分かりませんがこれはどう?
ttp://www.ne.jp/asahi/hishidama/home/tech/windows/cmd/cmd.html#AutoRun
0741デフォルトの名無しさん
2011/02/10(木) 16:14:230742デフォルトの名無しさん
2011/02/10(木) 17:16:27それって
jp
とやるのと何か違いはあるの?
0743デフォルトの名無しさん
2011/02/10(木) 21:56:530744デフォルトの名無しさん
2011/02/10(木) 23:29:340745デフォルトの名無しさん
2011/02/11(金) 00:02:23HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
のCodePageの値を437から932変更することで、
rem あいうえお
pause
というようなバッチファイルを作成・実行しても問題なく日本語で表示されるようになりました。
どうもありがとうございます。
0746デフォルトの名無しさん
2011/02/11(金) 00:18:02chcpはその場限り
modeは設定(レジストリ)変更
0747デフォルトの名無しさん
2011/02/12(土) 19:07:06set abc123=abc123
set a=%abc123:~0,1%
if "%a%" == "0" (goto :数字でした)
if "%a%" == "1" (goto :数字でした)
・
・
・
if "%a%" == "9" (goto :数字でした) else (goto :数字じゃなかった)
こんな風に、if文を羅列しなきゃ出来ませんか?
こうすりゃもっとスマートに書けるってのがあるなら教えてください。
正規表現使えたら楽なのに。
0748デフォルトの名無しさん
2011/02/12(土) 19:21:050749デフォルトの名無しさん
2011/02/12(土) 19:45:29ああなるほど。
findstrって見つからなかったらerrorlevel返すのかな?
試してみます。ありがとう。
0750デフォルトの名無しさん
2011/02/12(土) 20:14:04set /a n=%a%
if "%n%" = "%a%" (echo 数値) else (echo 数値でない)
rem 複数桁でも動作するけど、0123 のように先行 0 があると数値でないと
rem 判定されるので、注意。
0751デフォルトの名無しさん
2011/02/12(土) 20:20:57まとめて二階層上に移動させるのってどうすればいい?
(重複ファイルはなしの前提で可)
dir *.xls /s | move ...\
とかじゃ駄目なの?
オブジェクト指向とかじゃないから、moveの引数にパスとかまで渡せない?
まぁWindowsの検索使ったり、vbsで再帰処理するスクリプト書いてもいいんだけど…
0752デフォルトの名無しさん
2011/02/12(土) 20:30:53set /a だと%要らんよ。
set /a n=a
でいい
0753デフォルトの名無しさん
2011/02/12(土) 20:40:33move *.xls ..\..
0754デフォルトの名無しさん
2011/02/12(土) 20:41:54call set n2=%%n1:%a%=%%
if %n1%==%n2% echo 数字でない
0755デフォルトの名無しさん
2011/02/12(土) 20:45:43それだと *.xlsm *.xlsb *.xlsx も移動されるんだけど
0756デフォルトの名無しさん
2011/02/12(土) 20:56:07DOSの8+3形式のトラップ?
0757デフォルトの名無しさん
2011/02/12(土) 20:59:420758デフォルトの名無しさん
2011/02/12(土) 21:08:45> それだと *.xlsm *.xlsb *.xlsx も移動されるんだけど
だったら、dir *.xls /s | move ...\ なんて書かないでほしいなぁ。
とりあえず、ぱっと思いつくのは、
for /f %f in ('dir /b ^| findstr "\.xls$"') do move %f ..\..
あたりかな。
0759デフォルトの名無しさん
2011/02/12(土) 21:09:560760デフォルトの名無しさん
2011/02/12(土) 21:14:55http://scripting.cocolog-nifty.com/blog/2008/04/del_xls_547f.html
0761デフォルトの名無しさん
2011/02/12(土) 21:18:25>>752
>>754
ちょっと頭使えば方法はいろいろあるんですね
参考になりました。ありがとうございます
0762751
2011/02/12(土) 21:55:47バッチでなくコマンドでサクッとやりたかったんですが
dirの/sオプションは表示専用みたいなものか…
あと>>755は自分じゃないです
0763デフォルトの名無しさん
2011/02/12(土) 22:11:150764デフォルトの名無しさん
2011/02/12(土) 22:14:428+3形式の名前が無い状態だといけるな。
0765デフォルトの名無しさん
2011/02/12(土) 22:16:48>for /f %f in ('dir /b ^| findstr "\.xls$"') do move %f ..\..
の
^←これってどういう意味?
0766デフォルトの名無しさん
2011/02/12(土) 22:23:420767デフォルトの名無しさん
2011/02/12(土) 22:24:57for /f "delims=" %I in ('dir /s /b *.xls') do if /i %~xI==.xls move "%~I" "%~I\..\..\..\"
0768デフォルトの名無しさん
2011/02/12(土) 22:32:42ありがとうございます。
0769デフォルトの名無しさん
2011/02/13(日) 04:42:490770デフォルトの名無しさん
2011/02/13(日) 14:03:380771デフォルトの名無しさん
2011/02/13(日) 16:30:240772デフォルトの名無しさん
2011/02/13(日) 16:36:40"delims="が足りないな
>>758-759
"%~f"
0773デフォルトの名無しさん
2011/02/13(日) 18:28:090774デフォルトの名無しさん
2011/02/13(日) 20:02:230775デフォルトの名無しさん
2011/02/13(日) 20:09:450776デフォルトの名無しさん
2011/02/13(日) 22:19:580777デフォルトの名無しさん
2011/02/13(日) 23:44:120778デフォルトの名無しさん
2011/02/14(月) 00:04:350779デフォルトの名無しさん
2011/02/14(月) 00:15:060780デフォルトの名無しさん
2011/02/14(月) 04:12:120781デフォルトの名無しさん
2011/02/14(月) 17:27:310782デフォルトの名無しさん
2011/02/14(月) 19:26:482003以降は何気に choice.exe,、timeout.exe とかがあるから地味に便利。
0783デフォルトの名無しさん
2011/02/14(月) 20:30:25意図的に入れてかないと入らないから、マイナーなツールが
標準で入ってるかどうかはあんま意味がない
MSサイトなり他から持ってくるなりでターゲットで動けばOK
0784デフォルトの名無しさん
2011/02/14(月) 22:06:57適当なLL入れれば、それだけで作業の大部分は完了。
0785デフォルトの名無しさん
2011/02/14(月) 23:51:27環境変数に対する排他制御ってバッチだけで実装できますか?
0786デフォルトの名無しさん
2011/02/15(火) 00:10:150787デフォルトの名無しさん
2011/02/15(火) 00:18:05それなら、vcvars32.batが親シェルの環境変数を設定できることを説明してくれ。
0788デフォルトの名無しさん
2011/02/15(火) 00:24:55>>787
setlocalつかって、立ち上げたプロセスにしか反映しないようにしてみました。
この場合、同じ変数名つかってても影響ないんでしょうか?
SET TEMP=%TEMP% "abc"
みたいな感じで、複数のバッチでTEMPを書き換えても、別プロセスだと問題なしですか?
0789デフォルトの名無しさん
2011/02/15(火) 00:50:440790デフォルトの名無しさん
2011/02/15(火) 05:00:17例外はa.batでcall b.batした時、b.batの変更がa.batにも影響するくらいかな。
逆に根っこから恒久的に全部変えたかったらレジストリのEnvironmentを書き換える。
0791デフォルトの名無しさん
2011/02/15(火) 06:50:24具体的にどう関係ないんでしょうか?
バッチファイル内の環境変数のローカライズを開始ってなってるので、
やらないと全体に反映されませんか?
>>790
独立して保持ですか。メモリ上に展開されてるだけなイメージでOKでしょうか?
レジストリにさえ書き込まなければOKってことですね。
0792デフォルトの名無しさん
2011/02/15(火) 13:49:11> それなら、vcvars32.batが親シェルの環境変数を設定できることを説明してくれ。
16bit osの話でもしてんのか?ぼけ
>>788
> setlocalつかって、立ち上げたプロセスにしか反映しないようにしてみました。
あほか?
0793デフォルトの名無しさん
2011/02/15(火) 13:58:51ぼけとかあほとか…
底辺IT土方には他に語彙がないんか?
0794デフォルトの名無しさん
2011/02/15(火) 14:00:280795デフォルトの名無しさん
2011/02/15(火) 14:10:250796デフォルトの名無しさん
2011/02/15(火) 14:18:11set boke=aho
とやって、他方で、
echo %boke%
とやっても展開されないのですが?
0797デフォルトの名無しさん
2011/02/15(火) 14:50:20cmd以外で関連付けを使って開く方法ってないですか?
0798デフォルトの名無しさん
2011/02/15(火) 14:59:58urlprotocolhandler
0799デフォルトの名無しさん
2011/02/15(火) 15:20:190800デフォルトの名無しさん
2011/02/15(火) 18:03:36vcvars32.batの「32」が読めないか? カス。
0801デフォルトの名無しさん
2011/02/15(火) 18:32:490802デフォルトの名無しさん
2011/02/15(火) 18:38:18アホとボケは相容れないため展開されません
0803デフォルトの名無しさん
2011/02/15(火) 18:47:38親シェルの?
0804デフォルトの名無しさん
2011/02/15(火) 18:49:500805デフォルトの名無しさん
2011/02/15(火) 18:59:580806デフォルトの名無しさん
2011/02/15(火) 19:02:010807デフォルトの名無しさん
2011/02/15(火) 19:12:21>>792のカスは16bitOSと言っているので、それは関係ない。
0808デフォルトの名無しさん
2011/02/15(火) 19:12:580809デフォルトの名無しさん
2011/02/15(火) 19:18:330810デフォルトの名無しさん
2011/02/15(火) 19:18:380811デフォルトの名無しさん
2011/02/15(火) 19:38:19echo %boke%
とやっても展開されないのですが?
0812デフォルトの名無しさん
2011/02/15(火) 19:47:08echo %boke%
だろ
0813デフォルトの名無しさん
2011/02/15(火) 20:42:570814デフォルトの名無しさん
2011/02/15(火) 21:07:41と、","で区切られた区切りの数は不定の文字列があって、
1番目と最後のトークンだけを取り出したいんだけどどう書けばいいですか?
for /f "tokens=1,* delims=," %T (%STR%) do echo "%T" &echo "%U"
で "1番目" と残りは取り出せるんだけど。。
最後を取り出すのに何かいい方法があれば教えてください
0815デフォルトの名無しさん
2011/02/15(火) 21:09:470816デフォルトの名無しさん
2011/02/15(火) 21:16:18echo %first%
echo %last%
0817デフォルトの名無しさん
2011/02/15(火) 22:41:26>>816
レスありがとうございます。
>>816
do () &とすることで、いい感じなのですが区切り文字は ","カンマのみとしたいんです。
スペースとかの他の区切り文字と判断される文字があると分割されてしまいます。
>>815の言うようにやっぱりループさせるしかないのかなー?
0818デフォルトの名無しさん
2011/02/15(火) 22:50:36echo %first%
echo %last%
0819デフォルトの名無しさん
2011/02/15(火) 23:11:06いやもうなんだか、、、ほんと頭が下がります。。
>>816みてそのやり方に気付けなかった自分が情けないのと
要件満たしてあっさり書けてしまう>>818さんに感心とで複雑な気分です。。
もう私の頭なんて固くなっちゃってるんでしょうねー。^^;
>>818さん、ほんとにありがとうございました。
0820デフォルトの名無しさん
2011/02/16(水) 13:07:260821デフォルトの名無しさん
2011/02/16(水) 18:13:47使用例
新たにウインドウを開くことなく,「test.bat」というバッチ・ファイルを起動する
start /b test.bat
これ書いたのあほぼけかす?
0822デフォルトの名無しさん
2011/02/16(水) 18:46:38何が問題なの?
0823デフォルトの名無しさん
2011/02/16(水) 19:04:20>新たにウインドウを開くことなく,「test.bat」というバッチ・ファイルを起動する
のに
start /b test.bat
てやるかい?
0824デフォルトの名無しさん
2011/02/16(水) 19:22:480825デフォルトの名無しさん
2011/02/16(水) 19:59:090826デフォルトの名無しさん
2011/02/16(水) 21:48:15>新たにウインドウを開くことなく,「test.bat」というバッチ・ファイルを起動する
のに
start /b test.bat
てやるそうです
0827デフォルトの名無しさん
2011/02/16(水) 21:55:550828デフォルトの名無しさん
2011/02/17(木) 01:08:140829デフォルトの名無しさん
2011/02/17(木) 01:17:410830デフォルトの名無しさん
2011/02/17(木) 02:53:340831デフォルトの名無しさん
2011/02/17(木) 22:49:53ttp://support.microsoft.com/kb/105851/ja
0832デフォルトの名無しさん
2011/02/19(土) 01:18:15読み出した時に、abc^&だとabc&になって読み出されます。
^でエスケープしたままの状態の状態で読み出すことってできますでしょうか?
0833デフォルトの名無しさん
2011/02/19(土) 01:28:120834デフォルトの名無しさん
2011/02/19(土) 02:25:51コマンドプロンプトからでもバッチからでもtest.txtの中身がabc^&でtype test.txtとしてもXPSP3ではabc^&と表示されたよ
typeの結果を構文解析されるような使い方してるんじゃないの?
0835デフォルトの名無しさん
2011/02/19(土) 02:29:45エックス、プレイステーションポータブル3…orz
0836デフォルトの名無しさん
2011/02/19(土) 02:39:04echo %x%
みたいな話だろ
0837デフォルトの名無しさん
2011/02/19(土) 02:43:490838834
2011/02/19(土) 02:57:09文字列を""で囲んで取り出すとかは?
""を外したくなったら環境変数にセットして%VER:~1,-1%で外せるし
構文解析される前に%VER:^=~~%と^を^^と置換しておくことも出来るよ
0839デフォルトの名無しさん
2011/02/19(土) 03:10:17txtの中身がcsvとかで各フィールド毎に「"」があったり無かったりして回避できない罠
0840デフォルトの名無しさん
2011/02/19(土) 03:50:590841デフォルトの名無しさん
2011/02/19(土) 09:19:21なぜ ! の頭に ^ を14個も付ける必要があるのか誰か教えてください
setlocal enabledelayedexpansion
set b=
set x=a^^^^^^^^^^^^^^!b^^^^^^^^^^^^^^!c
echo %x%
0842デフォルトの名無しさん
2011/02/19(土) 16:06:170843デフォルトの名無しさん
2011/02/19(土) 16:11:250844デフォルトの名無しさん
2011/02/19(土) 16:40:07setlocal enableextensions disabledelayedexpansion
0845デフォルトの名無しさん
2011/02/19(土) 17:26:36>>841のやり方では14個必要ですよ?
0846デフォルトの名無しさん
2011/02/19(土) 17:39:190847デフォルトの名無しさん
2011/02/19(土) 17:52:360848デフォルトの名無しさん
2011/02/19(土) 18:14:06拡張ONがデフォの環境じゃenableextensionsは要らないけどね。
0849デフォルトの名無しさん
2011/02/19(土) 19:14:07^ --> ^^^^
^^! --> ^^^^^^^^^^!
0850844
2011/02/19(土) 20:07:24.63構文解析時に%と^が評価されて ^2個がひとつになり
x=a^^^^^!b^^^^^!c
^が半分の5個となり
遅延展開が有効だと遅延展開の評価時に ^2個がひとつに ^!が !となって
x=a^^!b^^!c
xに代入されるのは a^^!b^^!c
echo %x%
%と^評価時に%x%に a^^!b^^!cが展開され ^^が^となり
echo a^!b^!c
遅延展開の評価時に ^!が !となって
echo a!b!c
a!b!c
echo on にして、コンソールでは遅延展開の展開は見れないことを考慮しながら
setlocal enabledelayedexpansion
set b=
set x=a^^^^^^^^^^!b^^^^^^^^^^!c
setlocal disabledelayedexpansion
echo %x%
としたり最初から遅延展開を無効にしてみたりすると動作が理解しやすくなると思います。
といった意味で844書いたんだけど、言葉足らずすぎだったかなと。^^;
0851デフォルトの名無しさん
2011/02/19(土) 20:28:19.600852832
2011/02/19(土) 21:24:38.57コマンドに引き渡す使い方してます。
838さん教えてくださったやりかたで、今回は回避できました。
みなさん色々ありがとうございました。
0853デフォルトの名無しさん
2011/02/19(土) 21:25:09.75という表現はまぎらわしいか。
構文解析時や遅延展開時に ^が直後の文字をエスケープして消える
に訂正します。
0854デフォルトの名無しさん
2011/02/19(土) 23:39:29.45(a) set HOGE=HOGE && (環境変数HOGEを使うコマンド)
と実行させたところ、コマンドが環境変数HOGEを読み取ってくれません。
以下のよう二行に分けて実行したところ、環境変数を読み取ってくれます
(b) set HOGE=HOGE
(環境変数HOGEを使うコマンド)
外部コマンドとしてRubyから(a)のように
`set HOGE=HOGE && (環境変数HOGEを使うコマンド)`
というように実行したいのですが、なんで(a)では処理できないんでしょうか?
やりかたを教えてください。よろしくお願いします。
0855デフォルトの名無しさん
2011/02/19(土) 23:57:22.29set HOGE=HOGE && call (環境変数HOGEを使うコマンド)
0856デフォルトの名無しさん
2011/02/20(日) 00:00:11.86set HOGE=HOGE && call (環境変数%%HOGE%%を使うコマンド)
0857854
2011/02/20(日) 00:12:12.66>>855-856
試したのですが、(a)だと失敗して(b)だとうまく行きます
identify.exeプログラムに、一時的に環境変数を渡したいのですが。。
(a)set MAGICK_CODER_MODULE_PATH=c:\imagemagick\modules\coders && call identify.exe -list format
(b)set MAGICK_CODER_MODULE_PATH=c:\imagemagick\modules\coders
call identify.exe -list format
0858デフォルトの名無しさん
2011/02/20(日) 00:25:47.99渡らないという根拠はなんだ?
ところで(a)と(b)で渡しているものに微妙な違いがあるが、わかっているのか?
echo "%MAGICK_CODER_MODULE_PATH%"
してみ
0859デフォルトの名無しさん
2011/02/20(日) 00:44:36.52identifyの挙動の違いでしか判断してませんでした。すみません。
echoさせると、callをつけたときに、
MAGICK_CODER_MODULE_PATHが表示されるのを確認しました。
>ところで(a)と(b)で渡しているものに微妙な違いがあるが、わかっているのか?
call identifyの代わりに、call echo "%MAGICK_CODER_MODULE_PATH%"
としても、(a)と(b)の表示結果が同じに見えるのですが。
なんでidentifyの挙動が違うか分かってないないです。。
教えてください。お願いします。
0860デフォルトの名無しさん
2011/02/20(日) 00:47:49.66"c:\imagemagick\modules\coders "
の違い
0862デフォルトの名無しさん
2011/02/20(日) 13:20:48.23遅延展開とかsh並にきもいw
0863デフォルトの名無しさん
2011/02/20(日) 13:49:47.24VBとあんま変わらんような気もする
0864デフォルトの名無しさん
2011/02/20(日) 14:08:45.930865デフォルトの名無しさん
2011/02/20(日) 17:50:39.82動的な配列と文字列処理がもう少し充実すればなんとか
0866デフォルトの名無しさん
2011/02/20(日) 18:04:06.790867デフォルトの名無しさん
2011/02/20(日) 18:38:30.960868デフォルトの名無しさん
2011/02/21(月) 08:07:28.03会社のPCなのですが、お昼休みから戻ると起動していたソフトの動作が
ものすごく重いのです。
ウインドウをアクティブにし、ソフトを使うと徐々に軽くなり、元の軽さに戻ります。
業務上常にソフトは起動していなければならないのですが、お昼休み後は
この症状のために10分ほどまともに業務ができません。
そこでスクリプト?で常にWindows?かソフト?を動かして、アイドル状態にならないように
したいのですが、どのようにすれば良いか教えていただけないでしょうか。
※まだ試していませんが、ttp://kenknown.blog42.fc2.com/blog-entry-62.html
を実行すれば良いのだと思うのですが、エコではないので違う方法を教えてください...
0869デフォルトの名無しさん
2011/02/21(月) 08:45:21.67昼休み中にウイルススキャンが走ってるパターンだと思われるので、
アイドルを回避しても、あまり状況は変わらないと思われる
0870デフォルトの名無しさん
2011/02/21(月) 09:28:49.19たしかに昼休みにウイルスバスターが走っていましたが、
管理者に確認し部署ごと深夜に変更していただきました。
アイドル?により重いのは以前からの認識があるようなのですが
Windowsの仕様らしいとのことで2年間放置されているとのことです。
0871デフォルトの名無しさん
2011/02/21(月) 11:35:53.000872デフォルトの名無しさん
2011/02/21(月) 11:40:51.46そのあとマシン触るとガリガリ言って重くなるって話かも。
0873デフォルトの名無しさん
2011/02/21(月) 14:35:27.84十分にメモリが大きければ、仮想メモリのサイズを最小にする
メモリが少ない場合は、アプリ側の修正が必要だから無理
HDDのアクセスの早い部分に仮想メモリが来るようにデフラグするくらいしかない。
0874デフォルトの名無しさん
2011/02/21(月) 15:21:21.02設定変更が必要ですか・・・。ほかに方法はないのであれば、
こっそり>>868のスクリプトのお世話になります。
ありがとうございました
0875デフォルトの名無しさん
2011/02/21(月) 15:41:34.21多分状況は変わらんぞ。
0876デフォルトの名無しさん
2011/02/21(月) 16:02:29.10俺も、それを突っ込もうかと思ったが
スワップのスレッド優先度がどの程度になってるのか知らんので
CPU使用率が100%になれば、意外とスワップすら出来なくなり
>>874の思惑通りになる可能性も否定できないので止めた
0877デフォルトの名無しさん
2011/02/21(月) 22:43:30.83なんか懐かしい
0878874
2011/02/22(火) 22:06:22.60一つだけだと100%にならなかったので2つ実行しました。
お昼休み後、プロセスを停止すると即サクサク動作でした。
0879デフォルトの名無しさん
2011/02/23(水) 15:15:27.350880デフォルトの名無しさん
2011/02/23(水) 18:49:54.69そのファイル名を現在時刻に直して
スクリプトの場所に0223のような日付の名前のフォルダを作って
そこにファイルを移動するやつ
誰か作ってください。お願いします。
0881デフォルトの名無しさん
2011/02/23(水) 19:15:33.880882デフォルトの名無しさん
2011/02/23(水) 20:46:57.01set t=%time::=%
set d=%date:/=%
md "%~dp0%d:~-4%" 2>nul
copy /y "%~1" "%~dp0%d:~-4%\%t:~0,4%%~x1" >nul 2>&1
del /f /q "%~1" >nul 2>&1
0883デフォルトの名無しさん
2011/02/23(水) 21:30:07.380884デフォルトの名無しさん
2011/02/23(水) 21:50:17.60>>611
0885デフォルトの名無しさん
2011/02/24(木) 05:40:33.520886デフォルトの名無しさん
2011/02/24(木) 17:29:15.930887デフォルトの名無しさん
2011/02/24(木) 21:34:57.76for /f "delims=" %%B in ('dir /b /ad /s ^| sort /r') do rmdir %%B 2> nul
0888デフォルトの名無しさん
2011/02/24(木) 22:13:17.470889デフォルトの名無しさん
2011/02/24(木) 22:37:23.43おまえも面白くないってわかってんだろ?
0890デフォルトの名無しさん
2011/02/24(木) 23:03:58.25簡単に調べる方法ありますか?
abc-deだったら4文字目とか
0891デフォルトの名無しさん
2011/02/24(木) 23:13:08.530892デフォルトの名無しさん
2011/02/24(木) 23:27:10.59WSH使わないでお願いします。
0893デフォルトの名無しさん
2011/02/25(金) 00:32:17.600894デフォルトの名無しさん
2011/02/25(金) 00:48:41.91set /p y=%x:*%1=%>y
for %%x in (x) do set x=%%~zx
for %%y in (y) do set y=%%~zy
set /a x-y
0895デフォルトの名無しさん
2011/02/25(金) 00:49:33.620896デフォルトの名無しさん
2011/02/25(金) 01:02:35.00call :match abc-de -
echo %errorlevel%
exit /b
:match
setlocal enableextensions disabledelayedexpansion
set src=%1> nul 2>&1
set char=%2> nul 2>&1
set /a cnt=0
date /t>nul 2>&1
setlocal enableextensions enabledelayedexpansion
if defined src if defined char call :match_loop
endlocal
endlocal
exit /b %errorlevel%
:match_loop
set idx=!src:~%cnt%,1!> nul 2>&1
if not defined idx exit /b 0
set /a cnt=cnt+1
if "%char:~0,1%%char:~0,1%" neq "%idx%%idx%" goto match_loop
exit /b %cnt%
0897デフォルトの名無しさん
2011/02/25(金) 01:07:47.071行づつの説明やフローチャートでも結構です。
0898デフォルトの名無しさん
2011/02/25(金) 01:18:24.65@echo off 外して実行して、理解できない動作だけ聞け
0899デフォルトの名無しさん
2011/02/25(金) 01:18:55.93簡単に調べる方法ありますか?
0900デフォルトの名無しさん
2011/02/25(金) 01:20:11.660901デフォルトの名無しさん
2011/02/25(金) 01:24:26.19昔、日付の計算(現在日時+n日後とか、次の金曜日は何月何日とか…)させた時は、
何の修行かと思うほど大変だった…orz
0902デフォルトの名無しさん
2011/02/25(金) 01:30:24.610903デフォルトの名無しさん
2011/02/25(金) 01:32:13.94>>898
0904デフォルトの名無しさん
2011/02/25(金) 01:48:02.20:matchをcallする
%errorlevel%をechoする
exitする
...
...
0905デフォルトの名無しさん
2011/02/25(金) 02:12:10.110906デフォルトの名無しさん
2011/02/25(金) 03:17:59.26(abc-de) - (-de) = abc
abc = 3
3 + 1 = 4
4文字目
0907デフォルトの名無しさん
2011/02/25(金) 07:42:02.60すばらしい解説だ。
これならきっと、>>902にも理解できることだろう。
0908デフォルトの名無しさん
2011/02/25(金) 13:46:30.66これで約1分のウェイトを入れてみた(はずな)のですが
ウェイトの処理中にキー入力があったときにこのウェイトを飛ばそうと思っています
入力待ちにすると入力待ちの状態から処理が進まずpingが呼び出せず困っています・・・
0909デフォルトの名無しさん
2011/02/25(金) 14:56:23.270910デフォルトの名無しさん
2011/02/25(金) 15:08:36.550911デフォルトの名無しさん
2011/02/25(金) 15:43:09.37それを言うなら、Vistaじゃなくて 2003 以降。
0912デフォルトの名無しさん
2011/02/25(金) 17:48:19.55set の度にnulにリダイレクトしてたり、無意味なdateや
文字比較で2連続にしてる意味がわからんのだが…
0913デフォルトの名無しさん
2011/02/25(金) 18:11:23.78setは%1と%2に何が渡されるか分からんから
dateはerrorlevelを0にするため
0914デフォルトの名無しさん
2011/02/25(金) 18:13:26.21XPじゃだめかorz
0915デフォルトの名無しさん
2011/02/25(金) 18:13:49.49文字の比較で2回重ねるのは、その文字自体が「"」だった場合の対策
0916デフォルトの名無しさん
2011/02/25(金) 18:55:56.540917デフォルトの名無しさん
2011/02/25(金) 19:44:39.890918デフォルトの名無しさん
2011/02/25(金) 22:49:42.75Windows標準機能以外のツールを使うことは罷り成らん
とほざく底辺管理部門がいる限りは、仕方ないわな。
0919デフォルトの名無しさん
2011/02/25(金) 23:09:07.770920デフォルトの名無しさん
2011/02/25(金) 23:43:52.720921デフォルトの名無しさん
2011/02/26(土) 00:38:51.24バッチはDOS時代から使われてて理解しやすいからOKって
コマンド類とか昔と結構変わってるし、絶対バッチの方が
複雑になって大変だと思うんだけど、それを指摘すると
使用されるコマンドも制限される恐れがあるので、大人しくバッチを使う
0922デフォルトの名無しさん
2011/02/26(土) 00:40:24.200923デフォルトの名無しさん
2011/02/26(土) 01:26:23.270924デフォルトの名無しさん
2011/02/26(土) 02:11:13.90・仕様書は読まない
・他の人がで切れば身内ができないはずがない→やれ
インストールさせてそのツールが進めた人にあわなかった時 俺の運命は・・・
0925デフォルトの名無しさん
2011/02/26(土) 10:38:42.57> >>891はWindows標準機能だけど?
どこの Windows ?
うちの WindowsXP SP3 には入ってない。
>>922
> いや、他人に非標準のツールをインストールさせるのが面倒なんだよ。
だね、だけどだったらバッチから vbscript とか呼べばいいじゃんと思うが。
0926デフォルトの名無しさん
2011/02/26(土) 11:07:44.60explorer.exe
0927デフォルトの名無しさん
2011/02/26(土) 14:25:00.98EXIT
0928デフォルトの名無しさん
2011/02/26(土) 14:30:28.960929デフォルトの名無しさん
2011/02/26(土) 17:44:10.130930デフォルトの名無しさん
2011/02/26(土) 19:31:41.92XP標準機能だけでできませんか?
0931デフォルトの名無しさん
2011/02/26(土) 19:58:08.13vbsのpopupの呼び出しじゃだめか?
0932デフォルトの名無しさん
2011/02/26(土) 21:52:47.41プロセスにa.exeが起動されたらb.exeを終了してc.exeを起動するにはどうしたらいいですか?
0933デフォルトの名無しさん
2011/02/26(土) 22:21:21.71の部分が分からない
0934デフォルトの名無しさん
2011/02/26(土) 22:24:41.360935デフォルトの名無しさん
2011/02/26(土) 22:26:22.820936デフォルトの名無しさん
2011/02/26(土) 22:35:44.00俺なら、絶対に動かしたくないな…
@echo off
set task1=a.exe
set task2=b.exe
set task3=c.exe
set flag=1
:taskkill
for /f "usebackq tokens=*" %%A in ( `tasklist /fi "imagename eq %task1%" 2^>nul ^| find /i "%task1%"` ) do (set flag=2) & taskkill /fi "imagename eq %task2%" >nul 2>&1
if %flag%. neq 2. ping 127.0.0.1 > nul 2>&1 & goto taskkill
start "%task3%"
0937デフォルトの名無しさん
2011/02/26(土) 22:40:27.87ぷっ
0938デフォルトの名無しさん
2011/02/26(土) 22:43:07.220939デフォルトの名無しさん
2011/02/26(土) 22:44:07.210940デフォルトの名無しさん
2011/02/26(土) 22:45:19.80何か?
プロセスの管理だから、task3がコマンドの場合も考慮して
必ず別プロセスで立ち上げようと思うのが悪いことなのか?
0941デフォルトの名無しさん
2011/02/26(土) 22:48:05.550942デフォルトの名無しさん
2011/02/26(土) 22:48:15.090943デフォルトの名無しさん
2011/02/26(土) 22:48:29.37別ウインドウだった
0944デフォルトの名無しさん
2011/02/26(土) 22:48:36.300945デフォルトの名無しさん
2011/02/26(土) 22:49:48.150946デフォルトの名無しさん
2011/02/26(土) 22:52:51.54それと1度だけじゃなく常時にしたいです
0947デフォルトの名無しさん
2011/02/26(土) 22:54:17.120948デフォルトの名無しさん
2011/02/26(土) 22:55:08.802回gotoするよりは、フラグの方が好きなだけ
0949デフォルトの名無しさん
2011/02/26(土) 22:55:22.88ありがとうございました
0950デフォルトの名無しさん
2011/02/26(土) 22:57:55.48フラグもいらない
set task1=a.exe
set task2=b.exe
set task3=c.exe
:taskkill
for /f "usebackq tokens=*" %%A in ( `tasklist /fi "imagename eq %task1%" 2^>nul ^| find /i "%task1%"` ) do taskkill /fi "imagename eq %task2%" >nul 2>&1
ping 127.0.0.1 > nul 2>&1
goto taskkill
0951デフォルトの名無しさん
2011/02/26(土) 22:58:45.580952デフォルトの名無しさん
2011/02/26(土) 22:59:39.83for /f "usebackq tokens=*" %%A in ( `tasklist /fi "imagename eq %task1%" 2^>nul` ) do goto taskkill
ping 127.0.0.1 > nul 2>&1
goto tasklist
:taskkill
taskkill /fi "imagename eq %task2%" >nul 2>&1
start "boke" "%task3%"
0953デフォルトの名無しさん
2011/02/26(土) 23:07:07.620954デフォルトの名無しさん
2011/02/26(土) 23:41:26.91さっきまでできてたのにできなくなった
excelとwordで試してみました
@echo off
set task1=EXCEL.EXE
set task2=WINWORD.EXE
set flag=1
:taskkill
for /f "usebackq tokens=*" %%A in ( `tasklist /fi "imagename eq %task1%" 2^>nul ^| find /i "%task1%"` ) do (set flag=2) & taskkill /fi "imagename eq %task2%" >nul 2>&1
if %flag%. neq 2. ping 127.0.0.1 > nul 2>&1 & goto taskkill
goto taskkill
0955デフォルトの名無しさん
2011/02/26(土) 23:44:19.510956デフォルトの名無しさん
2011/02/27(日) 00:00:10.960957デフォルトの名無しさん
2011/02/27(日) 00:12:11.960958デフォルトの名無しさん
2011/02/27(日) 00:22:10.160959デフォルトの名無しさん
2011/02/27(日) 00:23:25.53.vbs
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run cmd.exe /c C:\Documents and Settings\*\デスクトップ\test.bat
デスクトップにあるバッチファイルを実行したいのですがうまくいきません
どうしたらいいでしょうか
0960デフォルトの名無しさん
2011/02/27(日) 00:27:46.460961デフォルトの名無しさん
2011/02/27(日) 00:29:22.53WSHShell.Run "cmd.exe /c ""C:\Documents and Settings\*\デスクトップ\test.bat"""
0962デフォルトの名無しさん
2011/02/27(日) 00:33:19.84呼び出しの時のパスの囲み方あまりわからないんです
0963デフォルトの名無しさん
2011/02/27(日) 00:37:17.30runへはオプションまで含めて全て一つの文字列として渡してやる必要がある
で、文字列の中に「"」を入れる場合は「""」のように二つ重ねる
その結果、>>961がrunへ渡る文字列は下記の通り
cmd.exe /c "C:\Documents and Settings\*\デスクトップ\test.bat"
0964デフォルトの名無しさん
2011/02/27(日) 00:40:47.82ありがとうございました
もっと勉強してきます
0965デフォルトの名無しさん
2011/02/27(日) 01:02:12.480966デフォルトの名無しさん
2011/02/27(日) 01:05:53.710967デフォルトの名無しさん
2011/02/27(日) 01:09:33.070968デフォルトの名無しさん
2011/02/27(日) 02:02:44.440969デフォルトの名無しさん
2011/02/27(日) 08:13:18.240970デフォルトの名無しさん
2011/02/27(日) 13:49:41.76思っていたんですが違うのでしょうか。
今まで特に気にすることなく使えていたバッチが最近はパスに入っているスペースで
バラバラにされて複数D&Dが全く使い物にならなくなるという事態になり困っています。
OSはwin7の64bitです。
0971デフォルトの名無しさん
2011/02/27(日) 14:06:18.90echo %*
set /a c=0
:loop
if "%~1"=="" goto :end
set /a c+=1
echo %c% %~1
shift
goto :loop
:end
pause
こんなバッチにa b.txtとc d.txtを複数選択でD&Dした結果
E:\test\c d.txt E:\test\a b.txt
1 E:\test\c
2 d.txt
3 E:\test\a
4 b.txt
0972デフォルトの名無しさん
2011/02/27(日) 14:14:40.39どうも使ってるファイラーが悪さをしているみたいですorz
エクスプローラでは問題無しでした
0973デフォルトの名無しさん
2011/02/27(日) 14:17:05.40パスに空白を含むと "" で囲む、そうでないと "" は付加されない。
call /? で引数についての説明を読むことを推奨する。
# ちょっとテストしてて気づいたが、パスに & を含むと & を
# 含んでそれ以降がバッチに渡されないな。
# 回避方法あるのかな?
0974デフォルトの名無しさん
2011/02/27(日) 14:21:42.14既出
0975デフォルトの名無しさん
2011/02/27(日) 14:55:16.49パスに半角スペースを含んでいるのに""で囲まれないからおかしいって事だったんですが…
ファイラが影響しているというのは思いも寄りませんでした
0976デフォルトの名無しさん
2011/02/27(日) 15:39:04.110977デフォルトの名無しさん
2011/02/28(月) 00:36:08.84011 012 013 ・・・ 100 というように3桁ゼロフィル出力にする方法ってありませんか?
set ns=11
set ne=101
:LOOP
echo %ns%>>log.txt
set /a ns=ns+1
if %ns%==%ne% goto finish
goto LOOP
:finish
0978デフォルトの名無しさん
2011/02/28(月) 00:43:38.84定番
3桁より大きな数をインクリメントして
下3桁ちょんぱして出力
0979デフォルトの名無しさん
2011/02/28(月) 01:16:06.56ns=1011
ne=1101
echo %ns:~1%
0980デフォルトの名無しさん
2011/02/28(月) 02:19:11.55定石
0981デフォルトの名無しさん
2011/02/28(月) 06:04:14.750982デフォルトの名無しさん
2011/02/28(月) 15:11:14.410983デフォルトの名無しさん
2011/02/28(月) 15:13:01.66【.cmd】 バッチファイルスクリプト %7 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1298873550/
0984デフォルトの名無しさん
2011/02/28(月) 18:23:51.95set /a ns=1000 + 011
とかしちゃって悩むんですね。
0985デフォルトの名無しさん
2011/02/28(月) 18:51:11.500986デフォルトの名無しさん
2011/02/28(月) 18:55:40.660987デフォルトの名無しさん
2011/02/28(月) 18:56:02.90http://questionbox.jp.msn.com/qa2418711.html
0988デフォルトの名無しさん
2011/02/28(月) 21:12:07.14スベったな…
まあアンタにとっては新鮮な驚きだったんだろうけどね。
0989デフォルトの名無しさん
2011/02/28(月) 21:24:38.28挽回のチャンスをやろうか?
011みたいなケースを含め数字文字列を十進数にするバッチを書け
0990デフォルトの名無しさん
2011/02/28(月) 23:08:35.69call :DEL_LEFTZERO ver
echo=%ver%
pause
exit /b
:DEL_LEFTZERO
setlocal
call set str=%%%1%%
:DLZ
if "%str:~0,1%" == "0" (
set str=%str:~1%
goto :DLZ
)
endlocal &set %1=%str%
exit /b
0991デフォルトの名無しさん
2011/02/28(月) 23:32:08.87:DLZ
if "%str%" == "0" (endlocal &set %1=%str%&exit /b)
if "%str:~0,1%" == "0" (
0992デフォルトの名無しさん
2011/03/01(火) 00:49:41.79call :DEL_LEFTZERO 010
echo %errorlevel%
exit /b
:DEL_LEFTZERO
exit /b %1
0993デフォルトの名無しさん
2011/03/01(火) 01:14:50.47乙
0994デフォルトの名無しさん
2011/03/01(火) 01:34:43.510995デフォルトの名無しさん
2011/03/01(火) 02:47:27.790996デフォルトの名無しさん
2011/03/01(火) 07:47:51.820997デフォルトの名無しさん
2011/03/01(火) 17:44:32.400998デフォルトの名無しさん
2011/03/01(火) 18:28:42.290999デフォルトの名無しさん
2011/03/01(火) 18:34:09.871000デフォルトの名無しさん
2011/03/01(火) 18:35:13.7410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。