Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件-将文件名添加到txt的第一行_Batch File - Fatal编程技术网

Batch file 批处理文件-将文件名添加到txt的第一行

Batch file 批处理文件-将文件名添加到txt的第一行,batch-file,Batch File,我第一次使用批处理文件是为了满足特定的需要。我有几个txt文件,每个文件都有许多行数据。我需要将文件名添加到每个txt文件的第一行。 通过搜索和游戏,我得到的最接近的结果是: @echo off setlocal enabledelayedexpansion :: store modified files in subdirectory 'Processed' md Processed for %%a in (*.txt) do ( >temp echo %%a copy temp+%%

我第一次使用批处理文件是为了满足特定的需要。我有几个txt文件,每个文件都有许多行数据。我需要将文件名添加到每个txt文件的第一行。 通过搜索和游戏,我得到的最接近的结果是:

@echo off 
setlocal enabledelayedexpansion
:: store modified files in subdirectory 'Processed'
md Processed
for %%a in (*.txt) do (
>temp echo %%a
copy temp+%%a Processed\"%%a"
)

当我运行此命令时,文件名被添加,但格式被破坏(所有字符和返回之间的空格似乎被删除)。我是否缺少一些简单的格式设置???

您的for循环应该是这样的

第一行将文件名写入目标

for %%a in (*.txt) do (
 echo %%a > "Processed\%%a"
 type %%a >> "Processed\%%a"
)
第二行将整个文件追加到目标中,不做任何修改

for %%a in (*.txt) do (
 echo %%a > "Processed\%%a"
 type %%a >> "Processed\%%a"
)

嗨,谢谢你的回复。不幸的是,它打开了原始的txt(在记事本中),并在处理过的目录中创建了一个txt,只有文件名。您可以尝试使用“type”作为活动命令。这在unix中曾经相当于“cat”。我编辑了答案来演示它的用途。这就成功了,谢谢你的帮助!最终代码添加到原始帖子中,以供其他人将来参考。@DosandDonts,不要将最终代码添加到问题中,这违反了本网站的问答风格!如果你想发布你的最终代码,写一个答案吧@webmite,你的报价不好,你应该像
>“Processed\%%a”
那样做;此外,
echo“%%a”>
还返回引号和尾随空格,因此您应该将其更改为
“已处理\%%a”echo(%%a
。。。