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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで改行に置換...
-
ワードにて スペースを全て改行...
-
文字+改行コードの置換について
-
Accessでの置換
-
不要な改行を一括削除する方法
-
空白スペースをタブに置換する方法
-
特定の文字を含む行だけ抽出す...
-
秀丸で指定した文字が入ってい...
-
置換でピリオドを一括削除出来...
-
WordVBA 置換処理での改行文字...
-
秀丸で改行コード"[CR]"を変換...
-
サクラエディタで連続改行を処...
-
CSVファイルをエクセルで開いた...
-
秀丸エディタで改行を削除する...
-
ワード 置換で空白行をなくす...
-
NotePad++ 改行された文を改行...
-
Excelのセルを飛ばして入力する
-
Google form グーグルフォーム...
-
PDF 入力途中で改行したい
-
「ドゥ」の簡単なローマ字入力方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで改行に置換...
-
ワードにて スペースを全て改行...
-
特定の文字を含む行だけ抽出す...
-
Accessでの置換
-
正規表現の置換で数値のみを抽...
-
空白スペースをタブに置換する方法
-
置換でピリオドを一括削除出来...
-
秀丸で指定した文字が入ってい...
-
サクラエディタで連続改行を処...
-
NotePad++ 改行された文を改行...
-
LibreOfficeのWriterで特定の文...
-
CSVファイルをエクセルで開いた...
-
ワード2010 ひらがな 削除
-
WordVBA 置換処理での改行文字...
-
秀丸の正規表現で文字列を切り...
-
秀丸で改行コード"[CR]"を変換...
-
テキスト内で括弧内の文字を削除
-
文字+改行コードの置換について
-
秀丸エディタで改行を削除する...
-
不要な改行を一括削除する方法
おすすめ情報