我有问题。我有很多文本文件(.txt)。我想在其中写入相应文本文件的名称,最后合并它们。我有很多。我不能手动完成,太耗时了。
假设我有一个名为" windows.txt"的文本文件。及其内容
Windows XP
Windows 7
Windows 8
我希望他们的内容是
windows
Windows XP
Windows 7
Windows 8
合并类似文件后,它们看起来应该是
windows
Windows XP
Windows 7
Windows 8
continents
Europe
Asia
Africa
languages
English
Chinese
请帮助!!
答案 0 :(得分:0)
可能太容易但我认为这是有效的答案:
type *.txt >result 2>&1
ren result result.txt
诀窍是当type
与文件列表或通配符一起使用时,它会在错误流中打印文件名。它不会被重定向到扩展名为txt
的文件,以避免其打印但重命名最后。
关于写入其中的文件的名称(最好先测试一下)
@echo off
for %%a in (*.txt) do (
type %%~na.txt* >%%~na 2>&1
del /q /f %%~na.txt
ren %%~na %%~na.txt
)
修改强>
如果启用了8.3表示法,可能会有效:
@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"
)
答案 1 :(得分:0)
@echo off
echo. >result
for /f %%i in ('dir /b /a-d *.txt') do (
echo.
echo %%~ni
type %%i
)>>result
ren result result.txt
伪代码以便更好地理解:
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