我要使用文件夹名称保存合并的文件,
copy *.* A.txt %CD%.txt
但是我收到语法错误“命令不正确”。
CMD
而不是DOS
)正如我的评论,也许您打算将一个目录中的所有文本文件合并到其上方目录中的单个文件。
这很简单Copy *.txt "%CD%.txt"
但是您可能没有权限访问上述文件夹,也没有写权限,或者您可能希望将其与其他文本文件写入同一文件夹,或者完全写入一个单独的文件夹。
在这种情况下,您需要使用简单的FOR
循环,或者先使用copy
然后再使用move
文件。
复制到与现有文本文件相同的目录:
FOR %_ IN ("%CD%") DO @(
COPY *.txt "%~n_.txt"
)
复制到另一个任意目录,但以它们来自的目录命名:
FOR %_ IN ("%CD%") DO @( COPY *.txt "C:\Path\To\Folder\Where_you_Want_These\%~n_.txt" )
A.txt
:Copy *.* A.txt
然后rename文件:
Rename A.txt "YourNewName.txt"
但是,您可能可以同时完成两个任务。使用cmd会话的当前目录名称执行此操作:
For /F "EOL=|Delims=" %I In ("%CD%")Do @Copy *.* "%~nxI.txt"
如果您在batch-file中工作,请使用以下任一方法:
@For /F "EOL=|Delims=" %%I In ("%CD%")Do @Copy *.* "%%~nxI.txt"
或
@For /F "EOL=|Delims=" %%I In ("%__CD__%.")Do @Copy *.* "%%~nxI.txt"
要在脚本中使用当前目录的名称。或者如果要使用保存正在运行的批处理文件的目录的名称,请尝试:
@For /F "EOL=|Delims=" %%I In ("%~dp0.")Do @Copy *.* "%%~nxI.txt"