Batch file 根据文件名将文件复制到目录中

Batch file 根据文件名将文件复制到目录中,batch-file,Batch File,我有数千个文件要移动 我已经使用了一个批处理文件来创建我需要的目录 我的文件名如下所示: 6711_05_12.pdf 10504_06_15.pdf 559_07_11.pdf 第一个字符到“\u1”是文件需要进入的目录。启动批处理文件-但不知道如何识别文件名 @echo off setlocal EnableDelayedExpansion for %%I in (*.pdf) do ( xcopy ??? ) 有批处理文件的手册吗?您甚至不需要批处理文件。下面的一行命令就可以了 f

我有数千个文件要移动

我已经使用了一个批处理文件来创建我需要的目录

我的文件名如下所示:

  • 6711_05_12.pdf
  • 10504_06_15.pdf
  • 559_07_11.pdf
第一个字符到“\u1”是文件需要进入的目录。启动批处理文件-但不知道如何识别文件名

@echo off
setlocal EnableDelayedExpansion
for %%I in (*.pdf) do (
 xcopy ???
)

有批处理文件的手册吗?

您甚至不需要批处理文件。下面的一行命令就可以了

for %I in (*.pdf) do @for /f "eol=_ delims=_" %A in ("%I") do @copy "%I" "%A"

如果要将命令放入批处理文件,只需将百分比加倍。

您甚至不需要批处理文件。下面的一行命令就可以了

for %I in (*.pdf) do @for /f "eol=_ delims=_" %A in ("%I") do @copy "%I" "%A"

如果要将命令放入批处理文件中,只需将百分比加倍。

命令行非常有效!但是,成倍增加百分比在批处理文件中不起作用。谢谢你的帮助!为什么
下线=u
?仅仅是delims就够了吗?我的意思是,我只是想学习,我从来没有在脚本中使用过
eol
。@AndriyM-所以文件名以什么字符开头都不重要。默认下线为
,在文件名中有效。这极不可能,但文件名可以以
开头。将EOL设置为DELIMS的一个角色可以有效地禁用EOL。了解这一点真是太好了!不记得在内置帮助中读过它,谢谢!命令行工作得很好!但是,成倍增加百分比在批处理文件中不起作用。谢谢你的帮助!为什么
下线=u
?仅仅是delims就够了吗?我的意思是,我只是想学习,我从来没有在脚本中使用过
eol
。@AndriyM-所以文件名以什么字符开头都不重要。默认下线为
,在文件名中有效。这极不可能,但文件名可以以
开头。将EOL设置为DELIMS的一个角色可以有效地禁用EOL。了解这一点真是太好了!不记得在内置帮助中读过它,谢谢!