使用批处理为某些类型的文件创建txt文件


3

我有一个包含所有类型文件的文件夹。假设我的文件夹路径是 E:/temp

我想创造,只为了 .avi 键入文件,txt文件并将txt文件命名为电影的名称。所以,如果我有20个剪辑 .avi 文件夹中的文件,我想打开20个txt文件,每个txt文件将以剪辑命名。

另外,在txt文件里面我需要编写(对于所有txt文件,它将是相同的)单词“HAPPY”

使用批处理文件的脚本是什么?

Answers:


2

你需要使用 FOR 迭代你想要使用的元素。看到 如何在批处理文件中循环匹配通配符的文件 详情。

一旦你解决了那个部分,你就会想要创建你的文件名 .txt 文件。命令行文档 FOR 可以帮助我们:

In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only

最后一个条目是我们想要的。我们要切断 .avi所以我们用 ~n 在我们的变量中只获取名称。这就是 %%~nf.txt 来自。

我们一开始 %%f,当前的文件名。然后我们切断了扩展 %%~nf 并且坚持 .txt......完成: %%~nf.txt

最后一个问题是当你尝试在一行中解决所有问题时,例如:

FOR %%f IN (*.avi) DO ECHO HAPPY > %%~nf.txt

那不行,因为shell会解释 > 并立即开始输出到该文件,这不是我们想要的。我们想要的 ECHO 要为每个文件处理,所以我只需将其拆分为多行。

@ECHO OFF

REM Iterate over all *.avi file in the current directory
FOR %%f IN (*.avi) DO (
    REM Cut off the extension from %%f, tack on .txt and 
    REM use it as the filename for our HAPPY output
    ECHO HAPPY > %%~nf.txt
)

嗨,谢谢你!它有效,我很高兴。还有一件事......我正在试图了解循环事物是如何工作的。我感兴趣的剪辑分为许多子文件夹。所以我有一个主文件夹,在更多文件夹中,每个文件夹包含另一级文件夹,剪辑在第三级内。我想做同样的事情,你教我所有这些文件夹,但不是复制你给我的蝙蝠文件,并为每个子文件夹运行它,我希望能够从外部文件夹(主要文件夹) )自动。再次感谢你!!!! SHIR
shir

所以我写了这个:FOR / r %% f IN(* .avi)DO(%% ~nf.txt ECHO Philips> %% ~nf_Medical_System.txt)但是txt文件位于bat文件所在的位置...我希望每个txt文件都在它的电影下..如何在它所属的子文件夹中找到它?再次感谢你!!!! SHIR
shir

而且,文件必须在我的计算机上本地才能使用吗?
shir

@shir尝试使用 %%~dpnf.txt 代替。然后应该使用Drive Letter + Full Path + Name + .txt。也许这会有所帮助。否则一定要让我知道:)
Der Hochstapler

你是最棒的!谢谢!它工作得很好
shir

0

创建一个名为的文本文件 happy.txt 含有“ 快乐 “。创建一个名为的批处理文件 makehappy.cmd 包含这个:

for %%i in (*.avi) do copy happy.txt "%%i.txt"

makehappy 。新文本文件将具有双重扩展名,但如有必要,可以采取相应的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.