
No.3ベストアンサー
- 回答日時:
DOSのコマンドでファイルの文字列置換はありません。
・正規表現可能な文字列置換のフリー/シェアウェアを探す
(エディタのマクロ等も含む。秀丸辺りなら串刺し置換とか可能でしょう)
・WSH(VBScrit/JScript etc.)で何とかする
・Cygwin辺りをインストールしてsed, awk, perl などで何とかする
・findstrとFOR文を組み合わせたバッチで何とかする
一番お手軽は最初のかな?
バッチに拘るのであれば、その次にお手軽そうなWSHの例を書いておきます。
改行が崩れていたら適宜読み換えて下さい。それができないなら、お手軽ツールを探す方が吉。
仕様がわからないので、以下を想定。
「名前A.は1行目の行頭にしか存在しない」
'VBScriptファイル:changeAll.vbsの内容
'Usage: CScript //nologo changeAll.vbs
Const ForReading = 1, ForWriting = 2
Dim fso, f, f1, fc, f2, mypath , patrn, strng, regEx, strng2
mypath="C:\test\" 'ディレクトリの場所
patrn="^名前A." 'ターゲット文字列が行頭に一致 ※^が肝なので取らないように
replStr="名前Z." '変更する文字列
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(mypath)
Set fc = f.Files
For Each f1 in fc
'拡張子がtxt以外は実行しない
If fso.GetExtensionName(f1.path) = "txt" Then
'ファイルの内容を読み込む
Set f2 = fso.OpenTextFile(f1.path, ForReading)
strng = f2.ReadAll
f2.Close
'正規表現でターゲット文字列が含まれていたらReplaceする
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
strng2 = regEx.Replace(strng, replStr)
'置換後と違っていたら書き換える
If strng <> strng2 Then
WScript.Echo strng2
Set f2 = fso.OpenTextFile(f1.path, ForWriting, True)
f2.Write strng2
f2.Close
End If
End If
Next
No.4
- 回答日時:
Windows上の解決策は既に出ているのでDOS上での実現法を。
PC-DOSならお望みのことが外部コマンドREXXを使って簡単に実現できます。
例えばこんな感じでOK:
・同じコマンドを繰り返すにはforを以下の様に使います
for %i in (*.txt) do a.bat %i
・a.batには第1引数を処理するファイルとして扱うための
手順を適当に記述しておきます(以下の2行)
rexx a.rex < %1 > tmp
copy tmp %1
・a.rexには置き換えスクリプトを記述します(以下の3行)
do while Lines() > 0
say translate(linein(), 'B', 'A');
end
PC-DOS Ver7.0で動作確認しました。PC-DOS2000も同じはずです。
詳しくは view dosrexx してみてください。
No.2
- 回答日時:
DOSのコマンドではファイルの編集はほぼ無理だったと思うのですが・・・その「中身を置換する方法は解る」というのは単に手動で置き換えているだけなんでしょうか?
でDOSのコマンドだけでそういうことをやるなら本来は別のツールを使うか、あるいは最初からVBS/WSH辺りでスクリプトを書くことになるかと思います。
参考URL:http://www.hatena.ne.jp/1093334953
No.1
- 回答日時:
>一つのテキストファイルの中身を置換する方法は
解るのですが一つ一つやるのが不便なので、
置換する方法がわかっているのであれば、それをバッチファイルにまとめるだけでは?
私は置換する方が難しいと思うんですけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WordVBA 置換処理での改行文字...
-
ワードにて スペースを全て改行...
-
テキストファイルで改行に置換...
-
サクラエディタで連続改行を処...
-
正規表現の置換で数値のみを抽...
-
テキストに縦に並んでいるデー...
-
Accessでの置換
-
秀丸の置換で数字で始まる行だ...
-
CSVファイルをエクセルで開いた...
-
秀丸で指定した文字が入ってい...
-
NotePad++ 改行された文を改行...
-
秀丸の正規表現で文字列を切り...
-
ワードで各行の先頭に文字列を...
-
すみません_←これってスマホか...
-
「ドゥ」の簡単なローマ字入力方法
-
ワードで住所の漢数字番地の縦...
-
Google form グーグルフォーム...
-
JUST PDF 3 傾き補正
-
エクセルでセル未入力時の初期...
-
vbsでのwebフォームへの入力制限?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードにて スペースを全て改行...
-
テキストファイルで改行に置換...
-
特定の文字を含む行だけ抽出す...
-
Accessでの置換
-
サクラエディタで連続改行を処...
-
CSVファイルをエクセルで開いた...
-
正規表現の置換で数値のみを抽...
-
置換でピリオドを一括削除出来...
-
LibreOfficeのWriterで特定の文...
-
空白スペースをタブに置換する方法
-
ワードで各行の先頭に文字列を...
-
文字+改行コードの置換について
-
テキストに縦に並んでいるデー...
-
WordVBA 置換処理での改行文字...
-
Jedit X でエスケープ文字の置...
-
ワード2010 ひらがな 削除
-
テキストエディタ 改行を含む複...
-
サクラエディタの置換について。
-
テキスト内で括弧内の文字を削除
-
秀丸エディタで改行を削除する...
おすすめ情報