[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何修改替换文本中的指定字符串?

本帖最后由 pcl_test 于 2016-8-17 13:52 编辑

小弟有很多家店要處理

檔案:abc.ini
以下內容:

173600
P00001
某某店
01
0001
192.6.6.51
H173600
\\H173600\abcpsv
192.6.6.100
f:
20
2-品名
N-認證
Y-發票
1-連線
123456
實業(某某店)
--------------------------------------------------
要修改 "某某店" 改成例如 "成功店"
但有想要把 成功店 變成另一個文件呼叫.例如 name.txt
方便以後只要修改name.txt 就能修改

感謝

  1. @echo off
  2. REM 从 name.txt 文件里面读取店名,比如:成功店
  3. set /p NewName=<name.txt
  4. REM sed.exe 下载地址 http://pan.baidu.com/share/link?shareid=452449&uk=1124163200
  5. sed "s/某某店/%NewName%/g" abc.ini > abc_new.ini
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 lung6549 于 2014-6-18 16:03 编辑

回复 2# Batcher

感謝
但SED 什麼呢?會出現錯誤.

小弟有寫一個批次

set /p NewName=<name.txt
call:sub "abacus.ini" "某某店" "%NewName%"

:sub
findstr "\<%~3\>" %1 >nul
if %ERRORLEVEL%==1 ( REM 若與內容不符則繼續執行
   for /f "tokens=1* delims=:" %%i in ('findstr /n ".*" %1') do (
       if "%%j"=="" (echo.>>tmp) else (
          echo %%j|find %2>nul&&(call echo %~3>>tmp)||(echo %%j>>tmp)
       )
   )
   copy tmp %1 /y >nul&&del tmp
)

字串代換.但會把整行都換掉.不知道寫錯那兒.
麻煩指教

TOP

回复 3# lung6549


    执行2楼的代码之前,需要先下载一个sed.exe
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


感謝.下後可以用.
但有二個問題.
1.可以用修改的方式修改文件嗎? 因為如果產生另一個檔案.還要在改名稱回去一次.
2.因工作關係不太能用外部程式.希望能用windows 本身指令.

小弟也很感謝您的建議

TOP

返回列表