[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. For /f "delims=" %%i In (test1) Do (
  3. Echo "%%i" "%%~nxi">>test2
  4. )
  5. pause
复制代码

TOP

  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.    set str=%%a
  4.    setlocal enabledelayedexpansion
  5.    echo "!str!" "!str:*:\require\test\=!"
  6.    endlocal
  7. ))>b.txt
  8. pause
复制代码

TOP

或用第三方 sed:
  1. @sed "s/^.:\\require\\test\\\(.*\)/\x22&\x22 \x22\1\x22/" a.txt>b.txt
复制代码

TOP

回复 6# kingshui
  1. @echo off
  2. set "key=X:\require\test\"
  3. set "key=%key:!=|%"
  4. (for /f "delims=" %%a in (a.txt) do (
  5.    set str=%%a
  6.    call set "str=%%str:!=|%%"
  7.    setlocal enabledelayedexpansion
  8.    echo "!str!" "!str:*%key%=!"
  9.    endlocal
  10.    call set "str=%%str:|=!%%"
  11. ))>b.txt
  12. pause
复制代码

TOP

  1. @echo off
  2. set "key=X:\require\test\"
  3. set "key=%key:!=|%"
  4. (for /f "delims=" %%a in (a.txt) do (
  5.    set "str=%%a"
  6.    call :fun
  7. ))>b.txt
  8. pause&exit
  9. :fun
  10. set "str=%str:!=|%"
  11. setlocal enabledelayedexpansion
  12. set str="!str!" "!str:*%key%=!"
  13. endlocal&echo %str:|=!%
复制代码
1

评分人数

TOP

回复 15# kingshui


    括号代表复合语句,预处理时会把 %var% 先解释成字符串,而 !var! 则留到命令实际执行前夕再临时解释,用 call 的目的是避免 %var% 位于复合语句中

TOP

返回列表