首页 > 解决方案 > 从一个文件中删除文本并批量添加到另一个文件中

问题描述

我正在为自己制作一个电影管理器来管理我下载到计算机上的电影。我正在使用批处理来完成这项工作。我已经成功完成了这个项目,但是我需要不时添加一些功能来保持我的程序新鲜和易于使用。

我今天要添加的功能是“将电影标记为已观看”功能。我要使用的方法看起来很简单,而且必须如此。这种方法背后的想法如下:

我有一个.txt文件,其中包含我在计算机上拥有的电影列表。可以通过批处理程序将新电影添加到列表中。过去我编写了一个简单的代码,在"MovieNumber1"每部电影的每一行之前放置一个字符串。该Movies.txt文件如下所示:

MovieNumber1 Name: Example Movie 1

MovieNumber1 Year: 2000

MovieNumber1 Desc: This is a description

MovieNumber1 Path: C:\Users\danie\Desktop\Videos\movie1.mp4

MovieNumber1 ----------------------------------------------------------------

MovieNumber2 Name: Example Movie 2

MovieNumber2 Year: 2002

MovieNumber2 Desc: This is a description

MovieNumber2 Path: C:\Users\danie\Desktop\Videos\movie2.mp4

MovieNumber2 ---------------------------------------------------------------- ```

我知道,这不是很整洁。但它完成了这项工作。

我现在需要制作新的“标记为已观看”功能,就是删除某部电影的行,并将它们写入另一个名为的txt文件中WatchedMovies.txt

我尝试了这段代码,我想搜索它"MovieNumber%moviechoice%",从 中删除带有该字符串的所有行Movies.txt,然后将它们粘贴到WatchedMovies.txt.

FindStr /B /V /C:"MovieNumber%moviechoice%" Movies.txt < WatchedMovies.txt

注意: %moviechoice%是程序在用户到达此阶段之前要求用户提供的变量。这个变量只是一个数字。

例如,如果用户选择了第二部电影,他将键入"2"以选择它。然后他可以观看电影或将其标记为已观看。如果他决定观看,我的代码将成功启动电影。如果他决定将其标记为已观看,则程序应搜索"MovieNumber2"in Movies.txt(因为用户之前输入了 2),删除所有包含"MovieNumber2"in的行Movies.txt并将它们粘贴到WatchedMovies.txt. 如果此操作成功,用户应该能够在 中看到未观看的电影Movies.txt和已观看的电影WatchedMovies.txt

这段代码现在正在做的是复制所有内容"MovieNumber2"(即复制所有与其他 MovieNumbers 的行)并将它们粘贴到WatchedMovies.txt

我怎样才能改变它做我想做的事?

标签: windowsbatch-filecmd

解决方案


推荐阅读