Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 通过将整个文件夹的内容移动到外部_Batch File - Fatal编程技术网

Batch file 通过将整个文件夹的内容移动到外部

Batch file 通过将整个文件夹的内容移动到外部,batch-file,Batch File,我正在编写一个批处理文件,将整个文件夹及其内容移动到外部硬盘上,并创建一个带有日期的文件夹 目前,在尝试整个文件夹之前,我只处理一个测试文件 以下是我得到的: net stop MSSQLSERVER Set FDate=%Date:~-10,10% Set Fdate=%FDate:/=-% MOVE C:\ShaiyaServer\ H:\Daryl\Server Backups\%FDate%\ PAUSE 我知道我的%FDate%包含正确的格式。。但我的错误是: C:\Windows\

我正在编写一个批处理文件,将整个文件夹及其内容移动到外部硬盘上,并创建一个带有日期的文件夹

目前,在尝试整个文件夹之前,我只处理一个测试文件

以下是我得到的:

net stop MSSQLSERVER
Set FDate=%Date:~-10,10%
Set Fdate=%FDate:/=-%
MOVE C:\ShaiyaServer\ H:\Daryl\Server Backups\%FDate%\
PAUSE
我知道我的
%FDate%
包含正确的格式。。但我的错误是:

C:\Windows\system32>net stop MSSQLSERVER
The SQL Server (MSSQLSERVER) service is not started.

More help is available by typing NET HELPMSG 3521.

C:\Windows\system32>Set FDate=05/02/2013

C:\Windows\system32>Set Fdate=05-02-2013

C:\Windows\system32>MOVE C:\ShaiyaServer\ H:\Daryl\Server Backups\05-02-2013\
The syntax of the command is incorrect.

C:\Windows\system32>PAUSE
Press any key to continue . . .
我的语法错误是什么?这是用管理员权限运行的

我知道我的MSSQLSERVER服务没有启动,这是因为自从第一次运行以来,我没有再次启动它

顺便说一下。。C:\ShaiyaServer的我的文件夹树位于此处:


这太长,无法发布到问题上。但是基本上,我有子文件夹,每个子文件夹都被填充了

如果你用错误的方法处理这个问题,我查看了你的文件树;在一个目录中有很多文件。。所以批量运行这个需要一些时间

net stop MSSQLSERVER
Set FDate=%Date:~-10,10%
Set Fdate=%FDate:/=-%
xcopy /s /e c:\ShaiyaServer\*.* H:\Daryl\Server Backups\%FDate%\
net start MSSQLSERVER
PAUSE
这将分别将每个文件移到其原始文件夹中

对不起。我的原稿太复杂了。见我的编辑。。此外,您可能需要考虑记录进度

按请求更新


此脚本仅将文件复制到您的目的地,而不是从原始文件中实际移动和删除文件

您使用的方法不对,我查看了您的文件树;在一个目录中有很多文件。。所以批量运行这个需要一些时间

net stop MSSQLSERVER
Set FDate=%Date:~-10,10%
Set Fdate=%FDate:/=-%
xcopy /s /e c:\ShaiyaServer\*.* H:\Daryl\Server Backups\%FDate%\
net start MSSQLSERVER
PAUSE
这将分别将每个文件移到其原始文件夹中

对不起。我的原稿太复杂了。见我的编辑。。此外,您可能需要考虑记录进度

按请求更新


此脚本仅将文件复制到您的目标,而不是实际移动和删除原始文件

但是,此脚本不会移动文件。也就是说,复制后不会删除这些卷。在给定的OPS批处理代码中,默认情况下,他正在“移动”到新卷。。它不会移动,迁移到新卷时会删除。。我已将批处理文件设置为windows。抱歉,我不确定是否理解。OP指定了移动,这意味着他们希望在迁移后删除文件。事实上,MOVE会在复制文件后删除它们(不管目标驱动器与源驱动器是相同还是不同,我不知道你为什么提到这一点)。如果能够重现树结构,MOVE对OP来说是可行的。事实上,他们确实必须使用XCOPY,就像在你的回答中一样(如果他们在Win7上,也可以使用robocy),但他们可能仍然希望在复制后删除文件。为什么我会这样做?在C:\上抓取一个文件,并将其拖动到C:\上的新位置。它确实会被移动/删除。-现在获取相同的文件,并将其移到外部源。。复制后原件保持原样而不是抱怨它。。如果您不同意我的意见,请给出您自己的答案?拖放与CLI无关。您可以做一些简单的测试来了解这一点。但是,这不会移动文件。也就是说,复制后不会删除这些卷。在给定的OPS批处理代码中,默认情况下,他正在“移动”到新卷。。它不会移动,迁移到新卷时会删除。。我已将批处理文件设置为windows。抱歉,我不确定是否理解。OP指定了移动,这意味着他们希望在迁移后删除文件。事实上,MOVE会在复制文件后删除它们(不管目标驱动器与源驱动器是相同还是不同,我不知道你为什么提到这一点)。如果能够重现树结构,MOVE对OP来说是可行的。事实上,他们确实必须使用XCOPY,就像在你的回答中一样(如果他们在Win7上,也可以使用robocy),但他们可能仍然希望在复制后删除文件。为什么我会这样做?在C:\上抓取一个文件,并将其拖动到C:\上的新位置。它确实会被移动/删除。-现在获取相同的文件,并将其移到外部源。。复制后原件保持原样而不是抱怨它。。如果您不同意我的意见,请给出您自己的答案?拖放与CLI无关。您可以做一些简单的测试来了解这一点。