bat 批处理遍历输出文件名 把文件名中特定字符替换成另外字符

批处理中怎样判定一个文件中含有某个? 谢谢! --------------------------------------------------------------@echo off
&abc & test.txt
if %errorlevel% equ 0 (脚本语言(26)
作者同类文章X
批处理中经常要对文件名做扩展处理,如得到文件目录,文件后缀,文件大小等。
写了一个批处理程序对此进行演示:
echo echo %%~0
echo ------------------------------
echo echo %%~f0
echo ------------------------------
echo echo %%~d0
echo ------------------------------
echo echo %%~p0
echo ------------------------------
echo echo %%~n0
echo ------------------------------
echo echo %%~x0
echo ------------------------------
echo echo %%~s0
echo ------------------------------
echo echo %%~a0
echo ------------------------------
echo echo %%~t0
echo ------------------------------
echo echo %%~z0
echo ------------------------------
echo echo %%~fza0
echo %~fza0
echo ------------------------------
echo echo 当前CMD默认目录 %%cd%%
echo 当前CMD默认目录 %cd%
echo ------------------------------
运行后就能容易的看出各种扩展的结果:
D:\WORK&test.bat
------------------------------
D:\WORK\test.bat
------------------------------
------------------------------
------------------------------
------------------------------
------------------------------
D:\WORK\test.bat
------------------------------
------------------------------
------------------------------
------------------------------
echo %~fza0
--a------ 836 D:\WORK\test.bat
------------------------------
echo 当前CMD默认目录 %cd%
当前CMD默认目录 D:\WORK
------------------------------
转载请注明出处。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:202966次
积分:3456
积分:3456
排名:第5106名
原创:136篇
转载:31篇
评论:57条
(2)(3)(3)(5)(4)(10)(4)(3)(7)(3)(1)(1)(2)(3)(1)(3)(6)(3)(4)(1)(2)(8)(2)(1)(2)(1)(4)(4)(1)(3)(5)(3)(8)(6)(6)(2)(7)(1)(2)(2)(5)(1)(3)(2)(1)(3)(2)(1)(6)(4)(1)怎样用批处理文件替换文本文件中的字符串?_百度知道
怎样用批处理文件替换文本文件中的字符串?
现在有个文本文件,里面的数据有一部分旦畅测堆爻瞪诧缺超画都是日期 都是071101我想做一个批处理程序,将这个文件从某个指定位置拷贝到另一个指定位置的同时,将其中的071101全部替换为071203。请问这种批处理程序可以实现么?
我用了一下jin_mz的程序。其中一部分确实可以替换,但是文本中其他一些信息却莫名其妙得消失了回泥垢:我文件的格式是这样的XXXXXXXXXXXXXXXXX071101XXXX071101XXX XXXXXX071101XXXXXXX一共有好几条这样的数据,在用程序修改之后中间空格之后的的数据就全都没有了很莫明其妙(XXXX是其他内容)回小楼_春雨:你写的程序我试用了,非常感谢,现在的问题是使用了你的程序,会在原来的文本文件后面新生成一段和我原来数据一样的数据,只是里面的日期已经被替换了。简单的说如果我原来的文件内容是A,经过替换字符串之后的内容是B那么用你的程序产生的文件内容就是AB呵呵,这个东西已经让我焦头烂额了。
提问者采纳
没挑战性,又没分,真不爱写@echo off::下面这行设置你要替换的文件名,这里是test.txt,改成你自己的set file=test.txtif exist result.txt del result.txtfor /f &tokens=*& %%i in (%file%) do call :begin ^&%%i^&start notepad result.txtgoto :eof:beginset var=%~1if defined var set va旦畅测堆爻瞪诧缺超画r=%var:203% if defined var echo %var% && result.txt
其他类似问题
10人觉得有用
为您推荐:
您可能关注的推广
批处理文件的相关知识
其他2条回答
@echo offfor &#4旦畅测堆爻瞪诧缺超画7;f &delims=& %%i in (替换前.txt) do (
call set n=%%n:203%%
call echo %%n%%&&d:\替换后.txt)pause
这个问题应该是个非常简单的问题,可能是你描述不清,建议你帖一部分你的源文件内容,和需要更新的内容出来.@echo offfor /f &tokens=1* delims=:& %%a in ('findstr /n .* &a.txt&') do (
if &%%b&==&& (echo\&&b.txt) else (
setlocal enabledelayedexpansion
set &var=%%b&
set &var=!var:203!&
echo.!var!&&b.txt
endlocal))start b.txt
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁批处理通过字符串截取得到文件名
当有一个完整的文件路径时,如何截取文件名呢,可以使用 echo 命令。
如下代码:
set a=&E:\Program Files\Image-Line\FL Studio 9\FL.exe&
set b=&E:\Program Files\Image-Line\FL Studio 9\Plugins\VST\Revitar20\Effects\GuitarRig\GuitarRig-Revitar2Companion Bank.bnk&
call :getname %a%
call :getname %b%
echo %~nx1
set a=&E:\Program Files\Image-Line\FL Studio 9\FL.exe&
set b=&E:\Program Files\Image-Line\FL Studio 9\Plugins\VST\Revitar20\Effects\GuitarRig\GuitarRig-Revitar2Companion Bank.bnk&
call :getname %a%
call :getname %b%
echo %~nx1
注意 echo %~nx1 中的1是指调用这个标号的第一个参数,也就是call :getname %a% 中的%a%.
不使用call的话可以直接用
echo %~nxa
echo %~nxa
可以用下面的方法将命令的输出赋给变量。
for /f %%i in ('command') do set var=%%i
for /f %%i in ('command') do set var=%%i

我要回帖

更多关于 批处理 字符替换 的文章

 

随机推荐