''コメントはここにどうぞ'' (サイトの趣旨に合わないものは削除します)
-間違い指摘
-TIPs情報
-リクエスト
-WinNT4やWin2003Serverの相違情報
等、よろしくお願いします。

#article
**「%~sA のバグ」の間違い…だと思うのですが… [#i8ae38d0]
>(maxwell さん) &new{2006-09-04 (月) 16:32:18};~
~
「%~sA のバグ」のショートファイルネームを返す処理ですが、サブルーチン「:loop」の4行目、「set "SFN=%SFN:&=^&%"」は、不要ではないでしょうか?~

//
- 無いとパスに&が含まれると駄目です。^ を含む場合の動作がおかしかったので追記しました。 -- (otn さん) &new{2006-09-05 (火) 00:53:33};
- 「:loop」の4行目を今のままにすると、最後の「echo %SFN%」で「&」が「^&」となります。表示前に加工するか、「:sfnsub の4行目、「call :loop %ARG%」を「call :loop "%ARG%"」 -- (maxwell さん) &new{2006-09-05 (火) 09:56:01};
- すみません。手がEnterキーに触れて編集中の文章を投稿してしまいました。「:sfnsub」の4行目の「call :loop %ARG%」を「call :loop "%ARG%"」とし、最後の表示も「echo "%SFN%"」とすれば良いのでは?という事です。 -- (maxwell さん) &new{2006-09-05 (火) 09:59:38};

#comment

**「%~sA のバグ」解決法の「%」対応 [#x5f5cbe0]
>(maxwell さん) &new{2006-09-01 (金) 11:05:42};~
~
サブルーチンに渡す引数に以下の様な加工をすると、上手く動作しました。~
「%」も「!」も問題なく処理出来てます。~
~
SetLocal ENABLEDELAYEDEXPANSION~
Set "ARG=!ARG:%%=%%%%!"~
EndLocal&Set "ARG=%ARG%"~

//

#comment

**「%~sA のバグ」解決法は間違ってました。 [#xf30b426]
>(maxwell さん) &new{2006-08-14 (月) 10:48:41};~
~
すみません。~

//

#comment

**「%~sA のバグ」解決法 [#s955e877]
>(maxwell さん) &new{2006-08-11 (金) 14:44:55};~
~
ディレクトリでは問題が起きない様なので、こんなのはどうでしょうか。~

 :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 さん) &new{2006-09-05 (火) 01:05:29};

#comment

**メモ [#i76acd75]
>(otn さん) &new{2006-04-04 (火) 12:02:43};~
~
REG QUERY コマンドでキー名や値名、データなどに日本語があるとだめ。~

//

#comment

**メモ [#h454d0af]
>(otn さん) &new{2006-04-04 (火) 12:01:35};~
~
findstr /gFILE で、FILE中の「あ」など0xA0を含む文字がうまく処理されない(ヒットするはずがヒットしない)。~

//

#comment

**拡張子関連付け起動で拡張子が無視されexeファイルと見なされるケース [#jf2fbd14]
>(フフフ さん) &new{2006-01-27 (金) 23:24:41};~
~
explorerはShellExecute()を、cmd.exeはCreateProcess()を使っているのでは?~
CreateProcess()を使って16ビットアプリケーションを実行するためには~
lpApplicationName=NULLの必要があり、ファイル名にパスが含まれている~
場合、.exe は追加されず、実行可能ファイルとして検索し、先頭がMZでPEでない~
場合に16ビットEXEとみなすのでは?~
「MZ80は8ビットパソコン」を起動したら奇妙な動きだった。(W2K Pro)~

//

#comment
-a -- (a さん) &new{2006-04-11 (火) 17:13:16};

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS