中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 13:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]把文本的文件名复制到文本的第一行作为标题 查看 942 回复 3
楼 主 [求助]把文本的文件名复制到文本的第一行作为标题 发表于 2010-03-06 12:47 ·  中国 广东 电信
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
如何使用批处理把文本的文件名复制到文本的第一行作为标题
2 发表于 2010-03-06 13:32 ·  中国 上海 杨浦区 电信
初级用户
积分 49
发帖 42
注册 2009-11-26 04:39
16年会员
UID 155365
性别 男
状态 离线
@echo off
if "%~1"=="" exit /b
echo 是否添加文字“%~nx1”到该文件的第一行?
pause
(echo;%~nx1&type %1)>_.temp
move _.temp %1

将文件拖到批处理图标上

[ Last edited by 000000000000000 on 2010-3-6 at 16:13 ]
3 发表于 2010-03-06 20:09 ·  中国 广东 电信
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
非常感谢 但是这样不能批量处理文件 要一个一个拖上去 请问有什么其他方法吗
4 发表于 2010-03-06 21:24 ·  中国 上海 杨浦区 电信
初级用户
积分 49
发帖 42
注册 2009-11-26 04:39
16年会员
UID 155365
性别 男
状态 离线
@echo off
:: 功能: 在文本第一行加上该文件名

:: 使用方法:
:: a. 直接运行, 将处理默认文件夹
:: b. 将(多个)文件(夹)拖到批处理图标上, 则处理拖入的文件(夹)

:: 默认文件夹路径. "%~dp0" 表示批处理所在路径.
set f="%~dp0"

:: 要处理的文件后缀. 用空格分开(如 *.txt *.log). 处理所有文件用 *
set ext=*.txt

echo 将添加文件名到文本第一行
pause

if "%~1" neq "" set f=%*
for %%a in (%f%) do (
if exist %%a\ (
cd /d %%a
for %%a in (%ext%) do (
(echo;%%~nxa&type "%%a")>.temp
move .temp "%%a"
)
) else (
(echo;%%~nxa&type %%a)>.temp
move .temp %%a
)
)

echo 添加完成! 按任意键退出...
pause>nul
论坛跳转: