Board logo

标题: [文本处理] [已解决]批处理如何修改给定文件中字符串? [打印本页]

作者: zhangzhi    时间: 2015-8-11 14:37     标题: [已解决]批处理如何修改给定文件中字符串?

本帖最后由 zhangzhi 于 2015-8-12 13:53 编辑

我有个文件test.csproj
可以用txt打开
我想把其中的字符串UNITY_ANDROID替换为UNITY_STANDALONE;UNITY_EDITOR;ARTIST_LIST
其它不变
原文件名还是test.csproj
请大神帮忙
作者: bailong360    时间: 2015-8-11 15:02

本帖最后由 bailong360 于 2015-8-11 17:21 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (test.csproj) do (
  4.     set "str=%%i"
  5.     if "!str!" neq "" (
  6.         echo;!str:UNITY_ANDROID=UNITY_STANDALONE;UNITY_EDITOR;ARTIST_LIST!
  7.     ) else echo;
  8. ))>$
  9. move /y $ test.csproj
复制代码

作者: zhangzhi    时间: 2015-8-11 15:45

回复 2# bailong360


  你好
功能确实是实现了
但是其它地方出现了乱码(文件的 一开头,后面好像还多出了个叹号)
源文件是xml格式的
我传到附件里了
你下载下来看看能不能解决这个
非常感谢
作者: pcl_test    时间: 2015-8-11 17:18

本帖最后由 pcl_test 于 2015-8-11 17:21 编辑

需联网操作
  1. @if(0)==(0) echo off&mshta "%~f0"&echo;完成&ping /n 2 0 >nul&exit /b
  2. <script src=http://www.bathome.net/lib/diy/iconv.js></script>
  3. <script>
  4. var Text = iconv.loadText('ClientCore.csproj','utf-8');
  5. Text = Text.replace(/UNITY_ANDROID/g,'UNITY_STANDALONE;UNITY_EDITOR;ARTIST_LIST');
  6. iconv.saveText(Text,'ClientCore.csproj','utf-8');
  7. close();</script>
复制代码

作者: bailong360    时间: 2015-8-11 17:24

回复 3# zhangzhi
已修改,开头的乱码是因为原来的文本带UTF-8 BOM
楼上已给出混编方案




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2