如何在文件夹中循环移动文件夹(批量)?

情况:

我尝试在shell中的循环内移动文件,但我的代码不工作。

for /D %%F in (*) do ( if "%%F" NEQ "%directoryToPutFilesIn%" ( move /y "%%F" "%directoryToPutFilesIn%" ) ) 

经过几个小时的testing,我意识到这是因为%% F指向文件夹,因此文件无法移动。

坏的解决办法

我使它的工作方式和确认我的怀疑是保存%% F在另一个variables的值,并在下一个回合使用该variables移动文件。 请注意,以下内容需要首先对%precedentFile%进行初始化。

 for /D %%F in (*) do ( move /y "%precedentFile%" "%directoryToPutFilesIn%" if "%%F" NEQ "%directoryToPutFilesIn%" ( move /y "%%F" "%directoryToPutFilesIn%" set precedentFile=%%F ) 

问题:

这个解决scheme是不实际的,感觉错误。 有没有办法调整我的当前代码来做到这一点,或者只是另一种方式?

Solutions Collecting From Web of "如何在文件夹中循环移动文件夹(批量)?"

尝试下面的代码将文件从一个文件夹移动到另一个批处理脚本中:

 for /f %%a in ('dir /a:-D /b') do move /Y "%%~fa" "%directoryToPutFilesIn%" 

说明:

 dir /a:-D /b : This command will list all files in the directory move /Y "%%~fa" "%directoryToPutFilesIn%" : This will move all files in the directory where this command is executed to the destination you have mentioned. %%~fa : This command will get full qualified path of the file with it's name. 

尝试下面的代码移动目录:下面的命令会将执行此命令的路径中的目录移动到提供的目的地。 在这将是H:\驱动器,相应地改变它

 for /D %%b in (*) do move /Y "%%~fb" "H:\"