0

我正在尝试创建一个批处理文件,该文件创建一个包含日期戳和两个文件夹的文件夹结构,然后将一些文件作为归档形式移动到这些子文件夹中。

经过一番研究,我设法正确生成了文件夹结构,但是我仍在努力正确移动文件。

原始
>存档(批处理文件位于此处)
>>按日期命名的文件夹
>>>输入
>>>输出
>输入
>输出

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

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 . . 

尽管在输出中正确识别了源文件,但在我看来,它似乎无法查看源文件。

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

如果有人对我如何解决这个问题有任何建议,将不胜感激。

4

1 回答 1

1

您的目标路径不应该是:

"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"
于 2013-09-13T12:32:17.503 回答