[前の記事]« Win95のPCに間違えてWin98の起動ディスクを上書きコピーしてしまった
[次の記事]空き上位メモリのサイズを増やすには? »

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

▲カテゴリー「SET, PATH, %環境変数%」索引へ
▲カテゴリー「文字列の操作」索引へ

特定の文字を置換するには


506) 特定の文字を置換する りすと 2002/07/25(木) 12:39


はじめまして、DOS初心者です。
どうしてもわからなくて質問させてもらいます。

文字列の中から、特定の文字を置換したいと思います。
そんなコマンドがあるか調べましたが見つけることができません。

どたなかアドバイスをいただけないでしょうか。
お願いします。

511) Re:特定の文字を置換する SYSOP 2002/07/26(金) 00:39


りすと さん

>文字列の中から、特定の文字を置換したいと思います。
>そんなコマンドがあるか調べましたが見つけることができません。

 文字列置換とひとくちにいっても、「"メモ帳"のように画面上で対話的に編集できるDOSプロンプト上のテキスト編集ツールはないか?」という意味合い と、たとえばバッチファイルなどからファイル名を指定して一気に済ませたい場合と、おおまかにはこの2つがあると思いますが、どちらでしょうか。
 また、OSのバージョンも明記をお願いします。

YanaKen


514) Re2:特定の文字を置換する りすと 2002/07/26(金) 10:06


YanaKen さん


あいまいすぎましたね、すいません。
バッチファイルでやりたいと思っています。
かなり具体的に言いますと。。。

あるファイルを圧縮したいです。
その対象となるファイルは、リストファイルみたいなものにフルパスで書いてあります。
そのリストファイルを読み込んで圧縮することはできました。
けれど、圧縮されたファイルにつける名前で悩んでいます。

「c:\abc\123\efg.txt」というファイルを圧縮したとして、
「c_abc_123_efg.cab」といった感じのファイル名にするのが目的です。
いくつあるか分からない \ を _ に(ついでに : もですが)置換できればOKなんです。

OSはWindows2000 5.00.2195 Service Pack2 です。
なかなか無茶なのかもしれませんがよろしくお願いします。

515) Re3:特定の文字を置換する SYSOP 2002/07/26(金) 12:27


りすと さん

>「c:\abc\123\efg.txt」というファイルを圧縮したとして、
>「c_abc_123_efg.cab」といった感じのファイル名にするのが目的です。
>いくつあるか分からない \ を _ に(ついでに : もですが)置換できればOKなんです。

 それをバッチ処理でということでしたら、(edlinに編集命令をリダイレクトで送り込む、みたいな特殊なテクニックが思い浮かぶことは思い浮かびますが)一般論としては「標準コマンドの範囲内では不可能」といっていいと思います。

 そういった用途向きのオンラインソフト(たとえば、UNIXの流れを引くsed)を利用するか、または、「ファイルから行ごとに文字列を読み込んで特定 の文字を探し出して置換」というのはプログラミング言語の世界では基本に属する処理なので、このさい前向きに自作に取り組む、というのも一つの選択肢だと思います。

YanaKen


573) Re3:特定の文字を置換する ttt 2002/08/27(火) 20:21


>「c:\abc\123\efg.txt」というファイルを圧縮したとして、
>「c_abc_123_efg.cab」といった感じのファイル名にするのが目的です。

@set BDIR=
@for /d %%i in (%1) do @set ADIR=%%~i
@for /d %%i in (%1) do @set SDIR=%%~nxi
@for /F "delims=\: tokens=1,*" %%i in ("%ADIR%") do @(
@set BDIR=%%i
@set ADIR=%%j
)
:begin
@for /F "delims=\: tokens=1,*" %%i in ("%ADIR%") do @(
@set BDIR=%BDIR%_%%i
@set ADIR=%%j
)
@if "%ADIR%" NEQ "%SDIR%" goto begin
@for /d %%i in (%1) do @set BDIR=%BDIR%_%%~ni.cab
@echo %BDIR%
pause

といった長いものでよければ。OSはwindows2000で作りました。

579) Re3:特定の文字を置換する ttt 2002/08/30(金) 14:37


Windows2000なら

set [変数]=%[置換対象文字列]:[検索文字]=[置換文字]%

で置換できるようです。


580) Re4:特定の文字を置換する じゃく 2002/08/30(金) 14:56



tttさんこんにちは

>Windows2000なら

>set [変数]=%[置換対象文字列]:[検索文字]=[置換文字]%

set [変数]=%[置換対象変数]:[検索文字]=[置換文字]%
ですね。一旦文字列を環境変数に入れないといけないようです。
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ
カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2002年07月25日 16:42に投稿されたエントリーのページです。

ひとつ前の投稿は「Win95のPCに間違えてWin98の起動ディスクを上書きコピーしてしまった」です。

次の投稿は「空き上位メモリのサイズを増やすには?」です。

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

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