2013-04-17 141 views
0

我写了一个小批处理文件,可将所有内容从一个文件夹移动到另一个文件夹。 这工作正常。但是,源文件夹包含两种类型的文件。其中一种是.doc,另一种是.xml。两个文件都有相同的名称。但有时,其中一个文件(.doc或.xml)缺失。Windows批处理文件 - 移动具有相同文件名但扩展名不同的文件

@echo off 
move /y "\\networklocation\folder\folder\*.*" "M:\localfolder" 

问题是如何让我的脚本只移动具有相同名称的.doc和.xml文件。例如,源代码包含1.doc,2.doc和1.xml。脚本只能移动1.doc和1.xml。 2.doc应该保留在源文件夹中。

我已经找过这个问题,但还没找到真正的东西。

回答

1

试试这个:

@echo off &setlocal 
for %%i in ("\\networklocation\folder\folder\*.doc") do (
    if exist "%%~dpni.xml" (
     move /y "%%~i" "M:\localfolder" 
     move /y "%%~dpni.xml" "M:\localfolder" 
    ) 
) 
+0

你的脚本工作就好了。我忘了我使用更长的扩展名,然后只是.xml。完整的扩展名是.doc.metadata.properties.xml。在将其调整为代码后,它可以正常工作。 Thx – Dafalgor

+0

是的,在cmd中,扩展以最后一个点开始,如果有的话。 – Endoro

+1

还有一个问题。为什么你使用我的文档和dpni的xmls?我知道我只是一个柜台。但是dpni代表什么,如果它没有任何意义,为什么不直接在这里使用我呢? – Dafalgor

相关问题