我曾经为批处理文件编程工作,但是我退出了很长一段时间,现在我又重新上班了,似乎有点问题。
我尝试在批处理文件中使用CMD命令编辑txt
个文件:
e.g。 echo hello >> *.txt
问题是我想将文本添加到该目录中的所有txt
文件中,我记得*表示该目录中具有相同扩展名的所有文件,除非它用作*.*
然后它包含所有文件,但现在只需将此错误写入cmd:
文件名,目录名或卷标语法不正确。
任何人都可以提供一些帮助吗?
答案 0 :(得分:1)
您可以使用带有FOR /F命令的DIR循环来迭代完整路径并将其传递到重定向追加>>
以相应地回显文本文件。
请务必将Folder=
变量的值更改为您需要使用ECHO
命令附加到文件的目录。
确认的工作批处理脚本示例
@ECHO ON
SET Folder=C:\MyFolder
CD /D "%Folder%"
FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%Folder%\*.txt"') DO ECHO HELLO>>%%~fA
PAUSE
EXIT
此外,已替换FOR变量引用 增强。您现在可以使用以下可选语法:
%~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 %~xI - expands %I to a file extension only %~sI - expanded path contains short names only %~aI - expands %I to file attributes of file %~tI - expands %I to date/time of file %~zI - expands %I to size of file %~$PATH:I - searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first one found. If the environment variable name is not defined or the file is not found by the search, then this modifier expands to the empty string