我想使用批处理文件将OLD
替换为%NEW%
中的test.txt
:
@echo off
set /p NEW=""
set InputFile=test.txt
find OLD
replace %NEW%
我的test.txt包含各种字符,例如~
:
;
_
.
,我将其归结为各种解决方案。
我尝试使用BatchSubstitude.bat来实现此功能,但它不会“找到”OLD
并且不会替换任何文本。
我还尝试使用fart.exe,但在尝试执行此操作时收到错误:
find_string="OLD"
replace_string="test"
actual find_length=3
actual replace_length=4
processing \filepath\,test.txt
skipping binary file: \filepath\test.txt
这方面的文档很少,没有什么我可以疯狂地google提供解决方案。
我暂时使用批处理的原因是我执行各种Windows CE操作,例如cecopy,pdel和rapistart for windows CE部署而不是activesync和批处理似乎是最简单的方法来获得我想要的结果 - 我是批量的总菜鸟。
是否有人知道如何通过批处理实现这一目标,并解释各种功能如何实现这一目标?
干杯!
答案 0 :(得分:0)
请勿从sourceforge下载任何内容,以便更好地跳过放屁。
当使用特殊字符(&<>|^
)时,dostips中的方法不那么健壮,因为它指向那里。这是一个简单的批处理/ jscript,它将替换文件中的内容(您可以更改硬编码像文件位置这样的东西):
0</* :
@echo off
set "file=c:\test.txt"
set "find=OLD"
set /p "replace=NEW: "
cscript /nologo /E:jscript "%~f0" %file% %find% %replace%
echo ==replaced==
exit /b */0;
var FSOObj = new ActiveXObject("Scripting.FileSystemObject");
var ARGS = WScript.Arguments;
if (ARGS.Length < 3 ) {
WScript.Echo("Wrong arguments");
WScript.Quit(1);
}
var filename=ARGS.Item(0);
var find=ARGS.Item(1);
var replace=ARGS.Item(2);
var readStream=FSOObj.OpenTextFile(filename, 1);
var content=readStream.ReadAll();
readStream.Close();
function replaceAll(find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace);
}
var newConten=replaceAll(find,replace,content);
var writeStream=FSOObj.OpenTextFile(filename, 2);
writeStream.WriteLine(newConten);
writeStream.Close();
同时检查这些更高级的工具
答案 1 :(得分:0)
试试这个:
>> plot(0.99811506 * sin(-1.00102866 * x + 3.14393633))