[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 3# 沸羊羊
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1-8 delims=," %%a in ('type "b.txt"') do (
  4.     set /p StrLine=
  5.     for /f "tokens=2 delims=," %%x in ("!StrLine!") do (
  6.         set StrCol=%%x
  7.     )
  8.     echo ,%%a,%%b,!StrCol!,%%d,%%e,%%f,%%g,%%h
  9. ))<"a.txt" > "c.txt"
复制代码

TOP

回复 6# 沸羊羊


一个路径加一对双引号就够了。
  1. if exist "C:\Program Files\aa bb\test.txt" del /q "C:\Program Files\aa bb\test.txt"
复制代码

TOP

  1. @echo off
  2. set "file=C:\Program Files\aa bb\a.txt"
  3. set "file2=C:\Program Files\aa bb\20160818_Export_c.txt"
  4. set "tmpFile=C:\Program Files\aa bb\c.txt"
  5. set "dirFile=C:\Program Files\aa bb\test.txt"
  6. if exist "%tmpFile%" del /q "%tmpFile%"
  7. if exist "%dirFile%" del /q "%dirFile%"
  8. for /f "tokens=1,2 delims=," %%a in ("%file%") do (
  9.     for /f "tokens=*" %%i in ('type "%file2%" ^| findstr %%a') do (
  10.         >>"%tmpFile%" echo %%i
  11.     )
  12.     rem call :G_getrows "C:\Users\fan-17\Desktop\a.txt" kk
  13. )
  14. setlocal enabledelayedexpansion
  15. (for /f "tokens=1-8 delims=," %%a in ('type "%tmpFile%"') do (
  16.     set /p StrLine=
  17.     for /f "tokens=2 delims=," %%x in ("!StrLine!") do (
  18.         set StrCol=%%x
  19.     )
  20.     echo ,%%a,%%b,!StrCol!,%%d,%%e,%%f,%%g,%%h
  21. ))<"%file%" > "%dirFile%"
  22. if exist "%tmpFile%" del /q "%tmpFile%"
复制代码
如果这个代码还是报错,你可以把 @echo off 删掉,在CMD窗口执行 test.bat 这样可以看到具体是哪里在报错。

TOP

回复 9# 沸羊羊


那种写法会导致 for 命令认为 "%file%" 是个字符串而不是一个文件
改成这样试试:
for /f "tokens=1,2 delims=," %%a in ('type "%file%"') do (

TOP

回复 12# 沸羊羊


判断有没有查找到字符串呢?没有的话则跳过,有的话,则输出到临时文件中

代码14行到16行就是为了实现这个功能

TOP

回复 15# 沸羊羊
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in ('type "b.txt"') do (
  4.     set LineB=%%a
  5.     set /p LineA=
  6.     for /f "tokens=1-2 delims=," %%x in ("!LineA!") do (
  7.         set LineNew=!LineB:%%x=%%y!
  8.     )
  9.     echo !LineNew!
  10. ))<"a.txt" > "c.txt"
复制代码

TOP

回复 18# 沸羊羊


    我是根据3楼文件写的代码,请举例说明代码执行的结果和你希望的结果具体差别在哪里。

TOP

回复 20# 沸羊羊


很遗憾,那个代码是根据你之前的需求编写的:a.txt和b.txt的行一一对应
你现在新的需求根本不是一一对应,所以这个代码无法正常处理。

TOP

请把最新需求的a.txt和b.txt两个文件以及希望得到的新文件c.txt打包压缩传上来

TOP

回复 26# 沸羊羊


2. 支持
3. 不需要安装。可以放到bat同一个目录,或者放到C:\Windows\System32文件夹,然后就能直接使用了。

TOP

回复 29# 沸羊羊


C:\Test>sed --version
sed (GNU sed) 4.2.2

看看你下载的哪个版本,老版本的 sed 可能不支持 -i

TOP

返回列表