質問編集履歴

2

追記

2019/08/26 04:54

投稿

zazabi
zazabi

スコア24

test CHANGED
File without changes
test CHANGED
@@ -161,3 +161,75 @@
161
161
  適切に置換できるコマンドを知っている方がいれば、教えてください。
162
162
 
163
163
  以上、よろしくお願い致します。
164
+
165
+
166
+
167
+ #8/26追記
168
+
169
+ 下記のコマンドを実施しましたが、解決しませんでした……。
170
+
171
+ @echo off
172
+
173
+ set word1=Hostname=Windows host
174
+
175
+ set word2=Hostname=%COMPUTERNAME%
176
+
177
+
178
+
179
+ set text1=<置換前ファイル>
180
+
181
+ set text2=<置換後ファイル>
182
+
183
+
184
+
185
+ setlocal enabledelayedexpansion
186
+
187
+ for /f "usebackq" %%i in ("%text1%") do (
188
+
189
+ echo "%%i" | findstr "%word1%" >NUL && set line=%word2%
190
+
191
+ echo !line!>> "%text2%"
192
+
193
+ )
194
+
195
+
196
+
197
+ endlocal
198
+
199
+ pause
200
+
201
+ 【置換前ファイルの内容】
202
+
203
+ a
204
+
205
+ a
206
+
207
+ a
208
+
209
+ Hostname=Windows host
210
+
211
+ a
212
+
213
+ a
214
+
215
+ a
216
+
217
+ 【置換後ファイルの内容】
218
+
219
+ ECHO は <OFF> です。
220
+
221
+ ECHO は <OFF> です。
222
+
223
+ ECHO は <OFF> です。
224
+
225
+ Hostname=<ホスト名>
226
+
227
+ Hostname=<ホスト名>
228
+
229
+ Hostname=<ホスト名>
230
+
231
+ Hostname=<ホスト名>
232
+
233
+
234
+
235
+ 以上、何か思い当たる節があるならば教えていただけたら幸いです。

1

追記

2019/08/26 04:54

投稿

zazabi
zazabi

スコア24

test CHANGED
File without changes
test CHANGED
@@ -87,3 +87,77 @@
87
87
  情報が足りないようでしたら追加致しますので指摘してください。
88
88
 
89
89
  以上、よろしくお願い致します。
90
+
91
+
92
+
93
+ #8/23追記
94
+
95
+ 以下のように改善されましたが、まだ未解決です。
96
+
97
+ 仕様としては、batと同じディレクトリにコピーしそこで文字列置換を行った後対象のファイルに上書きする方法にしました。
98
+
99
+ 置換前と置換後のコマンドは問題なく機能しますので、置換するコマンドのみ書かせていただきます。
100
+
101
+ 【コマンド】
102
+
103
+ @echo off &setlocal
104
+
105
+ set a=Hostname=Windows host
106
+
107
+ echo %a%
108
+
109
+ set b=Hostname=%COMPUTERNAME%
110
+
111
+ echo %b%
112
+
113
+ set c=<編集対象ファイルのフルパス>
114
+
115
+ setlocal enabledelayedexpansion
116
+
117
+ for /f "usebackq" %%i in ("<置換するためのファイルのフルパス>") do (
118
+
119
+ set line=%%i
120
+
121
+ set line=!line:"%a%"="%b%"!
122
+
123
+ echo !line!>> "%c%"
124
+
125
+ )
126
+
127
+ endlocal
128
+
129
+ pause
130
+
131
+ 【実行前ファイル内容】
132
+
133
+ a
134
+
135
+ aaaHostname=Windows hostaaa
136
+
137
+ a
138
+
139
+ 【実行後ファイル内容】
140
+
141
+ a
142
+
143
+ aaaHostname=Windows
144
+
145
+ a
146
+
147
+
148
+
149
+ 【試行内容】
150
+
151
+ set line=!line:"%a%"="%b%"! →だめだった
152
+
153
+ set line=!line:%a%=%b%! →だめだった
154
+
155
+ set line=!line:{%a%}={%b%}! →だめだった
156
+
157
+ set "line=!line:%a%=%b%!" →だめだった
158
+
159
+
160
+
161
+ 適切に置換できるコマンドを知っている方がいれば、教えてください。
162
+
163
+ 以上、よろしくお願い致します。