[前の記事]« SETの使い方がわからない
[次の記事]フォルダ内のデータを日付ごとに分別するには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「FOR /F」索引へ

FOR文のバグレポート(FOR /f "usebackq…)

1664.
FOR文のバグレポ
2007年02月15日(木) 17時50分
scriptwriter
for /f "usebackq delims=;" %%1 in ('a a;b b;c c') do echo %%1
が変ですね。
期待通り動かないだけでなく、変なメモリ参照までするようです。

for /f "usebackq" in ('文字列')は避けたほうがよいと思います。
for /f in ('echo 文字列')のほうが安全そうです。
1667.
Re:FOR文のバグレポ
2007年02月16日(金) 15時12分
otn
>for /f "usebackq delims=;" %%1 in ('a a;b b;c c') do echo %%1
>が変ですね。
>期待通り動かないだけでなく、変なメモリ参照までするようです。
>
>for /f "usebackq" in ('文字列')は避けたほうがよいと思います。
>for /f in ('echo 文字列')のほうが安全そうです。

若干状況が違いますが、同様の指摘が
http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/4-1011.html
にあります。

文字列から読み取りたい場合には usebackq を使わないというか、そもそも usebackq はファイルからの読み取りのケースだけで使うというのが安全です。

なお、for のカッコ内をはじめ、多くの場所では = ; , の記号は " で囲まれたり ^ が前置されない限り空白と同一視されますので、" " に囲まれていない場所で ; を使いたければ ^; と書く必要があります。


1668.
Re:FOR文のバグレポ
2007年02月16日(金) 19時05分
scriptwriter
文字列だけでなく、コマンドでも=;,が空白置換されますね。
なので、回避策は、文字列でもコマンドでも
=;,が含まれそうなときは遅延展開を使うとよいようです。


 
 


カテゴリー「FOR /F」索引へ

 




カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2007年02月15日 11:15に投稿されたエントリーのページです。

ひとつ前の投稿は「SETの使い方がわからない」です。

次の投稿は「フォルダ内のデータを日付ごとに分別するには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート