我有一个文件夹,其中包含200多个文本文件(.txt)
我想要一种简单的方法将每个文件名添加到每个文件的第一行。
例如,我有一个名为"I am a file.txt"
的文件,其中包含以下内容:
"
I am line one
I am line two
"
这应该变成这样:
"
I am a file
=====
I am line one
I am line two
"
我想知道是否有人可以帮我构建一个可以做到这一点的批处理脚本。
原因是我想上传我所有的文本文件到Evernote。但是Evernote不读取文件名,而是将注释命名为文本中的第一行
这对我有用:
(刚刚在一个名为whatever.bat的文件中通过并运行它)
@echo off
for /f "eol=: delims=" %%F IN ('dir /b /s "C:UsersMyPCDesktopmyDir*.txt"') do (
(
echo %%~nF
echo ___________________________
type "%%F"
)>"%%F.new"
move /y "%%F.new" "%%F"
)
pause
@echo off
pushd "pathToYourFolder"
for /f "eol=: delims=" %%F in ('dir /b /a-d *.txt') do (
(
echo %%F
echo =====
type "%%F"
)>"%%F.new"
move /y "%%F.new" "%%F"
)
假设文件名作为参数传递给脚本,则可以使用以下命令:
#!/bin/bash
for file in "$@"
do
sed -i "1 i ${file%.*}n=====" "$file"
done
当然,假设你有sed
可用,但由于你已经用bash
标记了这个问题,我想你已经安装了Cygwin。