简单的Windows批处理移动文件夹

时间:2017-06-05 07:07:10

标签: windows batch-file cmd windows-10

我只是想将string username = ""; // String.Empty or some default values string password = ""; // rest of code here 内的所有文件和子目录移到d:\temp\test,所以我尝试了这些命令:

d:\temp\archive

但我得到了这个错误:

move d:\temp\test\* d:\temp\archive\
move d:\temp\test\*.* d:\temp\archive\

然后我在网上挖了一下并在doc bat中尝试了这个:

The filename, directory name, or volume label syntax is incorrect.

这次它没有显示错误,但一切都静止不动,没有任何变化。

我在这里缺少什么?我在Windows 10上尝试这个。

1 个答案:

答案 0 :(得分:2)

好的,如果您只想从\test \中移动所有文件目录,那么这将首先执行文件,然后批量执行目录。 for / d将复制目录和子目录和文件。

@echo off
move "d:\temp\test\*" "d:\temp\archive"
for /d %%a in ("D:\temp\test\*") do move "%%~fa" "d:\temp\archive\"

作为附注,从cmd下面运行时,你会收到一个错误。

move d:\temp\test\* d:\temp\archive

这是因为它将移动所有文件,但不移动目录。如果你得到The filename, directory name, or volume label syntax is incorrect.,则没有文件,只有你的移动命令看不到的文件夹。

批处理文件中的

注意/Y开关已禁用,如果存在,则不会替换文件夹。因此,如果您打算经常进行覆盖,可能更确切地说使用xcopy并更新存档,然后在文件成功复制后在d:\temp中运行删除。

最后,请始终将您的路径括在双"中。在这种情况下,它会在没有双引号的情况下正常工作,但是如果你有类似move d:\program files\temp\* d:\temp\archives的东西,它会因为程序和文件之间的空间而产生错误,所以最好使用move "d:\program files\temp\*" "d:\temp\archive

编辑了解%%~作业。在这些示例中,我们使用%%I代替%%a

%~I         : expands %I removing any surrounding quotes (")
%~fI        : expands %I to a fully qualified path name
%~dI        : expands %I to a drive letter only
%~pI        : expands %I to a path only
%~nI        : expands %I to a file name only
%~xI        : expands %I to a file extension only
%~sI        : expanded path contains short names only
%~aI        : expands %I to file attributes of file
%~tI        : expands %I to date/time of file
%~zI        : expands %I to size of file
%~$PATH:I   : searches the directories listed in the PATH
              environment variable and expands %I to the
              fully qualified name of the first one found.
              if the environment variable name is not
              defined or the file is not found by the
              search, then this modifier expands to the
              empty string

The modifiers can be combined to get compound results:

%~dpI       : expands %I to a drive letter and path only
%~nxI       : expands %I to a file name and extension only
%~fsI       : expands %I to a full path name with short names only
%~dp$PATH:I : searches the directories listed in the PATH
              environment variable for %I and expands to the
              drive letter and path of the first one found.
%~ftzaI     : expands %I to a DIR like output line`