Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将目录移动到批处理文件的上一级';s目录_Batch File - Fatal编程技术网

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关于移动文件和文件夹的回答。我会留下我的答案,因为这是最初的问题,只移动文件。