コメントはここにどうぞ (サイトの趣旨に合わないものは削除します)
間違い指摘
TIPs情報
リクエスト
WinNT4やWin2003Server,Vistaの相違情報
等、よろしくお願いします。
すみませんが、スパムよけのため、JavaScriptオンでないと投稿できません。
If you are not Japanese, I would like you to commnet HOW you know this pages.
JavaScript is needed to post a comment.
John †
(Smithd442 さん)
1 Program you'r planting of crops to coincide whenever you can log onto your farm to reap them. fkdbkebkddadefbe
お名前:
John †
(Smitha519 さん)
You made some really good points there. I checked on the internet for additional information about the issue and found most people will go along with your views on this site. efaebdadfcadbgcg
お名前:
John †
(Smithg214 さん)
whoah this blog is fantastic i really like studying your articles. Keep up the good paintings! You understand, many individuals are looking around for this info, you could aid them greatly. cdadebgkbegdfkfb
お名前:
John †
(Smithc313 さん)
I will immediately grab your rss feed as I can not find your email subscription link or enewsletter service. Do you've any? Please let me know in order that I could subscribe. Thanks. ekgaeddbfdbeegke
お名前:
John †
(Smithd158 さん)
weblog. Loads of gratitude sharing. bdgffeddbcddebed
お名前:
John †
(Smithf858 さん)
An interesting dialogue is worth comment. I feel that you must write more on this topic, it won't be a taboo subject but typically people are not sufficient to speak on such topics. To the next. Cheers kddeadkbdfedffde
お名前:
John †
(Smithd969 さん)
Thank you for your blog article. Great. ecekbegdagfedbdf
お名前:
John †
(Smithb794 さん)
This is really attentiongrabbing, You're a very professional blogger. I have joined your rss feed and sit up for in search of extra of your fantastic post. Also, I have shared your site in my social networks! baeggafecedadefk
お名前:
John †
(Smithd362 さん)
Hi to all, how is everything, I think every one is getting more from this site, and your views agebgbcedfekgcee
お名前:
0x1Aで終了するファイルに追加リダイレクトできない? †
(たけ さん)
質問ですいません。
0x1Aで終了するファイル(バイナリファイル)に追加リダイレクト(>>)しようとすると、ひとつ0x1Aが削除されるようなのですが、これの対処方法をご存じないでしょうか?どうやらEOFだと見なされるらしいのですが、、、。
動作環境としては、VistaでUnxUtilsを使用しており、cmd.exe上でバイナリファイルをdd等で扱おうとしています。XPでも同様に一つ削除されるのですが、Cygwin環境だと正常に動作する(削除されない)ようです。再現させるためのコマンド例は以下です。
E:\tmp>gawk "BEGIN{for(i=0;i<5;i++)printf(\"%c\",0x1a)}" > tmp.dat
E:\tmp>ls -l tmp.dat
rw-rw-rw- 1 user group 5 Jul 7 23:43 tmp.dat
E:\tmp>od -A x -t x1z tmp.dat
000000 1a 1a 1a 1a 1a >.....<
000005
E:\tmp>echo ABCDE >> tmp.dat
E:\tmp>ls -l tmp.dat
rw-rw-rw- 1 user group 12 Jul 7 23:43 tmp.dat
E:\tmp>od -A x -t x1z tmp.dat
000000 1a 1a 1a 1a 41 42 43 44 45 20 0d 0a >....ABCDE ..<
00000c
これで5つ目の0x1Aが無くなってしまいます。
Cygwinだと動作速度が遅いときがあるため、出来ればcmd.exe上で動作させたいのですが、対策をご存じないでしょうか。
CMD.EXEのリダイレクトだと無理でしょうね。>>でなく、別新規ファイルに書き出して、COPY /B で連結するくらいでしょうか。 -- (otn さん)
回答ありがとうございます。こちらでも COPY /B での正常動作を確認しました。ただ、 >> で当然問題ないと思っていたのでかなり驚きました。昔から使っていた人にとっては当たり前のことなのかもしれませんが、他にこのような「落とし穴」とも思える例があれば、どこかにまとめて頂ければ非常にありがたく思います。 -- (たけ さん)
お名前:
自作バッチに組み込むときの著作権表示 †
(K さん)
こんにちは。コメントではなく質問なのですが...
掲載されているバッチスクリプトをそのまま(あるいは若干修正して)
使わせていただきたいのですが、著作権表示はどのようにすればよろ
しいのでしょうか?
お名前:
無題 †
echo で複数行を1行ずつファイルに書く場合
tmp1.bat echo @echo off
tmp1.bat echo setlocal
(以下略)
とありますが、echo の後に「<」と「>」があるとダメですので結局「^」でクォートしないとダメなんですね。
お名前:
日時を得る の :retry の位置 †
日時を得る の :retry の位置がおかしい気がします
ありがとうございます。おっしゃる通り・・・なぜ、こういう誤りが・・・よくあるテスト後のお色直しでのミスですね -- (otn さん)
>tmp.vbs echo Set WSH=WScript.CreateObject("WScript.Shell")の部分でエラーが発生しました。 -- (F論太 さん)
結果的には、WSH→WshShellに書き換えてうまく行きました。 -- (F論太 さん)
確かに。修正します。 -- (otn さん)
お名前:
Nice site †
(Valintino さん)
Hello, Your site is great. Regards, Valintino Guxxi
お名前:
you do iz besz †
(govokinolij さん)
Hello
Looks good! Very useful, good stuff. Good resources here. Thanks much!
G'night
お名前:
拡張子関連付け起動で拡張子が無視されexeファイルと見なされるケース †
(ym さん)
mixi方面でコメントいただいて試してみたのですが、
'.bat'や'.cmd' を実行すると、昔ながらのバッチファイルとして実行(というか'MZ$'を実行しようとしてエラーになる)
未登録拡張子だと実行形式かどうかを判断
拡張子なしだとエラー
という動きでした。
奥が深い。。。ではなくて、ちょっとしたdungeonですね。
お名前:
ファイル名が ^ を含む場合の動作 †
(maxwell さん)
ファイル名が ^ を含む場合の動作ですが、
1.サブルーチンへ引数を渡すと ^ → ^^ となる。
2.For 文のなかで、%A などの変数に ^ が含まれていて%WORK%などの環境変数に代入すると、 ^ → ^^ となる。%WORK% などから %TEMP% などへの代入だと起こらない。これと同じ事が %~sA などの展開でも起こっていると思われる。
という事のようですね。
という事で、2.の For 文の中では手が無い様に思われます。
ショートファイル名に展開する場合に私は、
For /F "skip=4 tokens=4,*" %%A in ('Dir /x') do (…
という形で逃げました。
上記の、「%~sA などの展開で起こっている」というのは、展開してもショートファイル名にならず元のままになってしまう事を言っています。 -- (maxwell さん)
お名前:
「%~sA のバグ」の間違い…だと思うのですが… †
(maxwell さん)
「%~sA のバグ」のショートファイルネームを返す処理ですが、サブルーチン「:loop」の4行目、「set "SFN=%SFN:&=^&%"」は、不要ではないでしょうか?
無いとパスに&が含まれると駄目です。^ を含む場合の動作がおかしかったので追記しました。 -- (otn さん)
「:loop」の4行目を今のままにすると、最後の「echo %SFN%」で「&」が「^&」となります。表示前に加工するか、「:sfnsub の4行目、「call :loop %ARG%」を「call :loop "%ARG%"」 -- (maxwell さん)
すみません。手がEnterキーに触れて編集中の文章を投稿してしまいました。「:sfnsub」の4行目の「call :loop %ARG%」を「call :loop "%ARG%"」とし、最後の表示も「echo "%SFN%"」とすれば良いのでは?という事です。 -- (maxwell さん)
テストした限り大丈夫なのですが、時間があるときにテストパターンを増やして見直してみます。現実的には(ちょっときたないですが)、command.com を使うのが確実ですね。 -- (otn さん)
私が試したパターンは&の前後にスペースがあるファイル名でした。私の方法だと、&の前か後ろにスペースがあれば問題は無いのですが、前後ともスペースで無い場合バグりました。呼び出し側で呼出し前に「&→^&」としてサブルーチン側で呼出し直後に「^^&→&」とすると良いようです。 -- (maxwell さん)
すみません。1つ前の発言は、またまた勘違いです。最初、エクスプローラ上でドラッグ&ドロップでファイル名を渡していたのですが、これだと&以降がカットされてしまう様です。で、ファイル名を直接入れると1つ前の発言の処理はなしで良いようです。 -- (maxwell さん)
お名前:
「%~sA のバグ」解決法の「%」対応 †
(maxwell さん)
サブルーチンに渡す引数に以下の様な加工をすると、上手く動作しました。
「%」も「!」も問題なく処理出来てます。
SetLocal ENABLEDELAYEDEXPANSION
Set "ARG=!ARG:%%=%%%%!"
EndLocal&Set "ARG=%ARG%"
お名前:
「%~sA のバグ」解決法は間違ってました。 †
(maxwell さん)
すみません。
お名前:
「%~sA のバグ」解決法 †
(maxwell さん)
ディレクトリでは問題が起きない様なので、こんなのはどうでしょうか。
:SFNSUB
Set "TGT_FILE=%~1"
Set "TGT_FILE=%TGT_FILE:^^=^%"
For %%A in ("%TGT_FILE%") do (
For /F "tokens=*" %%B in ("%%~dpA") do (
For /F "tokens=4 delims= " %%C in ('Dir /x "%%~B"^| FindStr /C:"%%~nxA"') do Set SFN=%%~sB%%~C
)
)
Set TGT_FILE=
Goto :EOF
コメントありがとうございます。findstrでファイル名が完全一致しなくても引っかかってしまいますね。 -- (otn さん)
お名前:
メモ †
(otn さん)
REG QUERY コマンドでキー名や値名、データなどに日本語があるとだめ。
お名前:
メモ †
(otn さん)
findstr /gFILE で、FILE中の「あ」など0xA0を含む文字がうまく処理されない(ヒットするはずがヒットしない)。
お名前:
拡張子関連付け起動で拡張子が無視されexeファイルと見なされるケース †
(フフフ さん)
explorerはShellExecute()を、cmd.exeはCreateProcess()を使っているのでは?
CreateProcess()を使って16ビットアプリケーションを実行するためには
lpApplicationName=NULLの必要があり、ファイル名にパスが含まれている
場合、.exe は追加されず、実行可能ファイルとして検索し、先頭がMZでPEでない
場合に16ビットEXEとみなすのでは?
「MZ80は8ビットパソコン」を起動したら奇妙な動きだった。(W2K Pro)
お名前: