第一篇文章,我已经搜索过并试过这个但是似乎找不到这样的东西。
好的,所以我花了一些时间在这上面并且碰壁了。我理解并且可以编写这个,如果我移动一个驱动器(移动)但是一旦我尝试实现xcopy以便它将工作交叉驱动器我开始挣扎。
这是我到目前为止所拥有的。这将在左括号的目录名称中查找,如果有,它将尝试将目录移动到另一个文件夹。这可以正常工作。
@echo off
SETLOCAL EnableDelayedExpansion
for /d %%f in ("%C:\Testing\Folder1%\*") do (
SET "folder=%%f"
if /I NOT "!folder:(=!"=="!folder!" move "%%f" C:\Testing\Folder2
)
示例目录名称如下
假期(2004年) - 移动
佛罗里达度假 - 不要搬家
纽约(2014) - 移动
Exmaple Folder - 不要移动
现在,当我发现移动不适用于不同的驱动器(D :(源)和E :(目的地))我发现我需要使用Xcopy。当我尝试使用xcopy而不是移动时,它将永远不会移动任何文件或文件夹。
我想我可能必须首先在新位置mkdir文件夹,然后移动所有内容并删除旧文件夹,但是我需要从完整路径中对目录名称进行子串。我可能会这样做,但是在我花半天时间用谷歌搜索如何去做之前想要和你们核实一下。在过去的几天里,我已经把头撞到了墙上,我觉得有些专家可以提供帮助。
尝试xcopy
@echo off
SETLOCAL EnableDelayedExpansion
for /d %%f in ("%D:\Folder1%\*") do (
SET "folder=%%f"
if /I NOT "!folder:(=!"=="!folder!" xcopy "%%f" E:\Folder2
)
我感谢您提供的任何和所有帮助。
杰
答案 0 :(得分:0)
我使用以下内容,也许它对您有用:
@echo off
setlocal enabledelayedexpansion
for /d %%i in (C:\TEST\*(*) do (
xcopy "%%i" "D:\%%~pni" /s /i
)
pause
替换相关目录的路径。祝你好运!