我对文件夹和子文件夹中存在文件的位置有要求。子文件夹是使用当前日期和时间动态创建的。所有文件都应移到一个没有子文件夹的目标文件夹中。
文件夹A:
1.txt
2.txt
Folder 20180907-1240-008
3.txt
4.txt
Folder 20180907-1128-001
5.txt
6.txt
Folder 20180906-0040-010
7.txt
8.txt
目标文件夹应如下所示
文件夹B:
1.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
以下命令在命令提示符下工作
for /r %d in (*) do copy "%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B
我的批处理脚本如下所示
@echo off
cd /d "A"
for /r %%d in (*) do copy "%d" "F:\Tickets\B"
在批处理脚本中执行时出现以下错误
\Tickets\B\*
The system cannot find the file specified.
0 file(s) copied.
如何使脚本正常工作
答案 0 :(得分:1)
几乎正确,无需CD,只需在/r
之后指定文件夹的父路径,还可以确保正确地双引号,并且最好在要复制到的路径的末尾加上反斜杠:
for /r "C:\path to folderA" %%d in (*) do copy "%%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B\"
如果您不想复制所有文件,仅复制.txt
,只需将条件更改为(*.txt)
for /r "C:\path to folderA" %%d in (*.txt) do copy "%%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B\"
另外,不确定您要真正将哪个路径用作目的地,但是您可以这样做:
@echo off
set "dest=F:\Tickets\B\"
set "source=C:\some dir\A"
for /r "%source%" %%d in (*) do copy "%%d" "%dest%"
将上面的代码复制并粘贴到批处理文件中。
答案 1 :(得分:0)
我在cmd中使用以下命令从音乐文件夹及其所有子文件夹的my-music文件夹中复制所有m4a文件。不要忘记目标文件夹路径后的“ \”。
for /r "c:\Users\A\Desktop\music" %x in (*.m4a) do copy "%x" "c:\Users\A\Desktop\my-music\"
答案 2 :(得分:0)
如果要通过cmd进行操作,则将父文件夹路径指定为/n
之后的for /r "C:\parentFolderPath\" %d in (*) do copy "%d" "D:\destinationFolderPath\"
,不要忘记在路径末尾添加反斜杠。