首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用bat将文本文件的名称写入文本文件?

如何使用bat将文本文件的名称写入文本文件?
EN

Stack Overflow用户
提问于 2014-04-18 10:05:49
回答 2查看 382关注 0票数 1

我有个问题。我有许多文本文件(.txt)。我希望在它们中写入相应文本文件的名称,并最终合并它们。我有很多。我不能手动做,太费时了。

假设我有一个名为"windows.txt“的文本文件,其内容如下

代码语言:javascript
运行
复制
Windows XP
Windows 7
Windows 8

我希望他们的内容是

代码语言:javascript
运行
复制
windows
Windows XP
Windows 7
Windows 8

在合并了类似的文件后,它们应该如下所示

代码语言:javascript
运行
复制
windows
Windows XP
Windows 7
Windows 8

continents
Europe
Asia
Africa

languages
English
Chinese

救命啊!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-18 11:30:02

代码语言:javascript
运行
复制
@echo off
echo. >result
for /f %%i in ('dir /b /a-d *.txt') do (
 echo.
 echo %%~ni
 type %%i
)>>result
ren result result.txt

Pseude更好理解的代码:

代码语言:javascript
运行
复制
turn echo off
delete result file
for all txt files in current directory do:
 print empty line
 print name of textfile without extension
 print textfile
and put it into new file "result"
if done, rename the resulting file
票数 0
EN

Stack Overflow用户

发布于 2014-04-18 10:25:50

也许太容易了,但我认为这是正确的答案:

代码语言:javascript
运行
复制
type *.txt >result 2>&1
ren result result.txt

诀窍是,当type与文件列表或通配符一起使用时,它会错误地打印文件名,stream.And不会将其重定向为具有txt扩展名的文件,以避免打印,但在最后被重命名。

关于写入它们的文件的名称(最好先测试一下)

代码语言:javascript
运行
复制
@echo off
for %%a in (*.txt) do ( 
 type %%~na.txt* >%%~na 2>&1
 del  /q /f %%~na.txt
 ren %%~na %%~na.txt
 )

编辑

如果启用8.3表示法,可能会有效:

代码语言:javascript
运行
复制
@echo off
ren ????????.txt ???????? >nul 2>&1
for /f "tokens=* delims=" %%# in ('for %%a in (????????^) do @echo %%a') do ( 

 echo %%#>%%~#_
 rem echo %%~n#_
 type %%~n# >>"%%~#_" 2>nul
 del  /q /f "%%~n#"
 ren "%%~n#_" "%%~n#.txt"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23151851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档