批处理将.txt文件名加入到该文件的第1行中

2025-03-24 06:01:05
推荐回答(3个)
回答1:

我用二个文件来处理,a.bat:执行入口语句,提取当前目录所有*.txt的文件; b.bat 是操作命令,用于将文件名+内容写入到加了
_文件.txt;
a.bat内容如下
@echo off
cls
for %%c in (*.txt) do call b.bat %%c
@echo on

b.bat 内容如下
@echo off
echo %1 >_%1
type %1 >>_%1
echo "copied %1"
@echo on
将这二个文件放到显示的目录下就OK了,如果要具体操作比如复制到指定目录只要改b.bat内容就行了.
在XP/DOS下测试通过, 输入a.bat就会生成 _文件名.txt---已经被替换的就是这个文件

回答2:

@echo off
for /f "delims=" %%i in ('dir /a-d/b/s "*.txt"') do (
(echo %%~ni
type "%%i")>>#
move # "%%i">nul)
pause

你提问中的代码有很多问题,特别是用for /r有些情况下不要用.

回答3:

把"%%c"引号去掉就没双引号了
echo %1 >_%1改成echo %~n1>_%1就应该没.txt了
手机回答,没去测试。
应该能行