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 批处理文件移动命令";系统找不到指定的路径。”;尽管正确识别了要移动的文件_Batch File_File Management - Fatal编程技术网

Batch file 批处理文件移动命令";系统找不到指定的路径。”;尽管正确识别了要移动的文件

Batch file 批处理文件移动命令";系统找不到指定的路径。”;尽管正确识别了要移动的文件,batch-file,file-management,Batch File,File Management,我试图创建一个批处理文件,创建一个带有日期戳的文件夹结构和其中的两个文件夹,然后将一些文件作为存档形式移动到这些子文件夹中 经过一些研究,我成功地生成了正确的文件夹结构,但是我仍在努力使文件正确移动 原始归档文件(批处理文件位于此处)按日期命名的文件夹>>>in>>OUT>in>OUT 我的批处理文件代码如下: for /f "skip=1" %%d in ('wmic os get localdatetime') do if not defined mydate set mydate=%%d

我试图创建一个批处理文件,创建一个带有日期戳的文件夹结构和其中的两个文件夹,然后将一些文件作为存档形式移动到这些子文件夹中

经过一些研究,我成功地生成了正确的文件夹结构,但是我仍在努力使文件正确移动

原始
归档文件(批处理文件位于此处)
按日期命名的文件夹
>>>in
>>OUT
>in
>OUT

我的批处理文件代码如下:

for /f "skip=1" %%d in ('wmic os get localdatetime') do if not defined mydate set mydate=%%d
md %mydate:~0,8%\IN
md %mydate:~0,8%\OUT
move /y "C:\Main Database\Raw\IN\*.CSV" "C:\Main Database\Archive\%mydate:~0,8%\IN\*.csv"
move /y "C:\Main Database\Raw\OUT\*.CSV" "C:\Main Database\Archive\%mydate:~0,8%\OUT\*.csv"
pause
如前所述,(Date)->(IN&OUT)的文件夹结构工作正常,但是当涉及到文件移动时,会出现一些问题

以下是运行的批处理文件的输出:

C:\HYS Database\Raw\Archive>for /F "skip=1" %d in ('wmic os get localdatetime')
do if not defined mydate set mydate=%d

C:\HYS Database\Raw\Archive>if not defined mydate set mydate=20130913130421.4590
00+060

 :\HYS Database\Raw\Archive>if not defined mydate set mydate=

C:\HYS Database\Raw\Archive>md 20130913\IN

C:\HYS Database\Raw\Archive>md 20130913\OUT

C:\HYS Database\Raw\Archive>move /y "C:\HYS Database\Raw\IN\*.CSV" "C:\HYS Datab
ase\Archive\20130913\IN\*.csv"
C:\HYS Database\Raw\IN\INLIST_HYS,HN51KTG,2013-09-13,10-05-55-372.CSV
The system cannot find the path specified.
        0 file(s) moved.

C:\HYS Database\Raw\Archive>move /y "C:\HYS Database\Raw\OUT\*.CSV" "C:\HYS Data
base\Archive\20130913\OUT\*.csv"
C:\HYS Database\Raw\OUT\OUTLIST_HYS,HN51KTG,2013-09-13,10-01-24-291.CSV
The system cannot find the path specified.
        0 file(s) moved.

C:\HYS Database\Raw\Archive>pause
Press any key to continue . . 
在我看来,尽管在输出中正确地识别了源文件,但它似乎很难看到源文件

我对编写批处理文件是完全陌生的,到目前为止,我所做的都是通过查看其他有类似问题的人的答案拼凑而成的,但是它并没有完全解决问题


如果有人对我如何解决这一问题提出建议,我们将不胜感激。

您的目标路径不应该是:

"C:\Main Database\Raw\Archive\%mydate:~0,8% ...  ?
它是:

C:\Main Database\Archive\%mydate:~0,8% ...
=>


嗯,这是一个令人尴尬的疏忽。我猜有时候这些东西会以另一个人的观点来识别。这确实使我处于有利地位!。这就是说,现在我得到一个
文件名、目录名或卷标语法不正确。
当文件移动时会显示一条消息。不要担心,这样的事情有时会花费你几个小时。很高兴我能帮忙。
move /y "C:\Main Database\Raw\IN\*.CSV" "C:\Main Database\Raw\Archive\%mydate:~0,8%\IN"
move /y "C:\Main Database\Raw\OUT\*.CSV" "C:\Main Database\Raw\Archive\%mydate:~0,8%\OUT"