[前の記事]« FOR文中のFORがループしてくれない
[次の記事]forでのファイル読み込み処理がうまく動かない »

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

▲カテゴリー「文字列の操作」索引へ

テキストファイル各行の末尾のスペースのみ削除する方法

1557.
行末のスペースのみ削除する方法について
2007年01月02日(火) 07時34分
やまなみ
OS:Windows Server 2003 SE SP1

初めて質問させてもらってます。

末尾のスペースのみを削除する方法を探しています。

例えば、c:\A.txtに"AB CDEF  "という文字列が
格納されているとして、この文字列(※実際は
ダブルクォーテーションを含みません)を"AB CDEF"に
変換し、環境変数として使用する方法を考えています。
なお、含まれるスペースの数および格納されている
文字列の長さは不定であるとします。

どなたか、ご存知であれば教えていただけないで
しょうか。

よろしくお願いします。
1558.
Re:行末のスペースのみ削除する方法について
2007年01月02日(火) 20時20分
otn
>末尾のスペースのみを削除する方法を探しています。
>
>例えば、c:\A.txtに"AB CDEF  "という文字列が
>格納されているとして、この文字列(※実際は
>ダブルクォーテーションを含みません)を"AB CDEF"に
>変換し、環境変数として使用する方法を考えています。

「A.txtに絶対含まれない文字」があれば、

set /P XXX=<C:\A.txt
set X=%XXX%★
:LOOP
set Y=%X: ★=★%
if "%X%"=="%Y%" goto NEXT
set X=%Y%
goto LOOP
:NEXT
set XXX=%X:★=%
echo "%XXX%"

のようにしてできると思います。
1559.
Re:行末のスペースのみ削除する方法について
2007年01月02日(火) 22時30分
scriptwriter
otnさん、同じことを考えました
で、別解

set a=aaa  bbb   
echo "%a%"
call :set %a%
echo "%a%"
goto :eof
:set
set a=%*

1560.
Re:行末のスペースのみ削除する方法について
2007年01月02日(火) 23時25分
otn
>で、別解

>set a=%*

へえ、%* は空白の個数も保存するんですね。というか、最初の非空白文字から最後の非空白文字までか。

shift の影響を受けないので「これは使えん」と思っていたら、何か別方面で使えそう。この例もですが。

ただ、末尾だけじゃなくて先頭の空白も消えるのが質問の要件に合っているかどうか。それでよければこっちがずっとエレガントですね。

1561.
Re:行末のスペースのみ削除する方法について
2007年01月03日(水) 01時36分
やまなみ
otnさん、scriptwriterさん、ありがとうございました!

デフォルトプリンタの切り替えをおこなうバッチの
中で、インストール済みプリンタを取得するために、
WMICコマンドでプリンタの列挙を行なっていたのですが
どうしてもプリンタ名の後ろに空白が入ってしまって
困っていたところでした。。。

未だ動作確認はしていませんが、これで解決できると
思います。

>へえ、%* は空白の個数も保存するんですね

↑まったくそのとおりです!勉強になりました。。


>ただ、末尾だけじゃなくて先頭の空白も消えるのが質問の要件に合っているかどうか。

↑合っています。
ありがとうございます。

また何かありましたら、宜しくお願いします。

1562.
Re:行末のスペースのみ削除する方法について
2007年01月03日(水) 12時06分
scriptwriter
一応、正攻法も

set a=aaa  bbb   
echo "%a%"
:loop
if "%a:~-1%"==" " (
set a=%a:~0,-1%
goto loop
)
echo "%a%"

 
 


カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

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

ひとつ前の投稿は「FOR文中のFORがループしてくれない」です。

次の投稿は「forでのファイル読み込み処理がうまく動かない」です。

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

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