我正在寻找一个批处理脚本,它将多个文本文件的名称附加到每个文件的第一行



我有一个文件夹,其中包含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。

相关内容

  • 没有找到相关文章

最新更新