Batch file 将目录移动到批处理文件的上一级';s目录
我想将我的文件(以及子文件夹)从Batch file 将目录移动到批处理文件的上一级';s目录,batch-file,Batch File,我想将我的文件(以及子文件夹)从%LocalAppdata%\A目录移动到B\App\D目录。 批处理文件位于B\Bat目录中。我当前执行以下操作从中复制文件 %LocalAppdata%\A至B\App\D-- (注意文件夹B是一个变量,所以我不能使用它) 上述操作似乎不会移动子文件夹。将工作目录设置为父文件夹 pushd "%~dp0.." && MOVE /Y "%LocalAppData%\A\*.*" ".\App\D\" 将工作目录设置为父目录 pushd "%~d
%LocalAppdata%\A
目录移动到B\App\D
目录。批处理文件位于
B\Bat
目录中。我当前执行以下操作从中复制文件
%LocalAppdata%\A
至B\App\D
--
(注意文件夹B
是一个变量,所以我不能使用它)
上述操作似乎不会移动子文件夹。将工作目录设置为父文件夹
pushd "%~dp0.." && MOVE /Y "%LocalAppData%\A\*.*" ".\App\D\"
将工作目录设置为父目录
pushd "%~dp0.." && MOVE /Y "%LocalAppData%\A\*.*" ".\App\D\"
移动和重命名可以使用源掩码中的通配符处理多个文件。它们还可以处理单个文件夹。但它们无法使用源掩码中的通配符处理多个文件夹 因此,您可以使用循环单独移动文件夹,然后使用通配符直接移动所有剩余文件
for /d %%F in ("%LocalAppData%\A\*") do move /y "%%F" "%~dp0..\App\D"
move /y "%LocalAppData%\A\*" "%~dp0..\App\D"
或者简单地用一个循环单独移动所有对象。唯一的缺点是,如果文件/文件夹名中存在未映射到活动代码页的unicode,则可能会失败。它的效率也有点低,但我认为这并不重要
for /f "eol=: delims=" %%F in ('dir /b "%LocalAppData%\A\*"') do move /y "%LocalAppData%\A\%%F" move /y "%%F" "%~dp0..\App\D"
最后一种方法的一个优点是,您可以将
/A
选项添加到dir
命令中(不要跟随属性),并移动所有文件和文件夹,包括具有隐藏和/或系统属性的文件和文件夹。移动和重命名可以使用源掩码中的通配符处理多个文件。它们还可以处理单个文件夹。但它们无法使用源掩码中的通配符处理多个文件夹
因此,您可以使用循环单独移动文件夹,然后使用通配符直接移动所有剩余文件
for /d %%F in ("%LocalAppData%\A\*") do move /y "%%F" "%~dp0..\App\D"
move /y "%LocalAppData%\A\*" "%~dp0..\App\D"
或者简单地用一个循环单独移动所有对象。唯一的缺点是,如果文件/文件夹名中存在未映射到活动代码页的unicode,则可能会失败。它的效率也有点低,但我认为这并不重要
for /f "eol=: delims=" %%F in ('dir /b "%LocalAppData%\A\*"') do move /y "%LocalAppData%\A\%%F" move /y "%%F" "%~dp0..\App\D"
最后一种方法的一个优点是,您可以将
/A
选项添加到dir
命令中(不要跟随属性),并移动所有文件和文件夹,包括那些具有隐藏和/或系统属性的文件和文件夹。我不明白为什么会出现问题。那个移动命令对我很有效。当命令失败时,是否确实存在App\D文件夹?@dbenham抱歉,原始代码也可以工作,但无法移动包含文件的子文件夹。我会更新问题。我不明白你为什么会有问题。那个移动命令对我很有效。当命令失败时,是否确实存在App\D文件夹?@dbenham抱歉,原始代码也可以工作,但无法移动包含文件的子文件夹。我会更新这个问题。它是有效的,但是我怎样才能移动包含文件的子文件夹呢。我的%LocalAppdata%\A\文件夹也包含文件和子文件夹。Move
命令似乎不适用于子文件夹。xcopy似乎不起作用xcopy“%LocalAppData%\Google\Chrome”“%~dp0..\App\User\Local\Appdata\Google\Chrome”/E
@aviarian请参阅DBenham关于移动文件和文件夹的回答。我会留下我的答案,因为这是最初的问题,只是移动文件。它的工作,但我如何才能移动子文件夹与文件太。我的%LocalAppdata%\A\文件夹也包含文件和子文件夹。Move
命令似乎不适用于子文件夹。xcopy似乎不起作用xcopy“%LocalAppData%\Google\Chrome”“%~dp0..\App\User\Local\Appdata\Google\Chrome”/E
@aviarian请参阅DBenham关于移动文件和文件夹的回答。我会留下我的答案,因为这是最初的问题,只移动文件。