2017-04-25 17 views
-2

我想要复制和重命名存储在一堆目录(年,月,日)中的文件。这些文件是.ers文件,我需要它们来保持其扩展名,但从file.ersfile_cloud.ers。 然后,我希望每个月的文件在cloud文件夹中保存。 理想情况下,我会在Windows命令行中执行此操作。 我知道一个批处理文件是一个很好的开始,所以我有以下 - 这不包括保存在不同的位置 - 但我只是在复制和重命名。使用Windows复制并重命名多个目录中的多个文件CMD行

for /D %%y in ("C:\Data\20*") do (
    pushd "%%~y" 
    for /D %%m in ("*") do (
     pushd "%%~m" 
     for /D %%d in ("*") do (
      pushd "%%~d" 
      for %%f in (soig_*.ers) do copy "%%~f.ers" "%%~f_cloud.ers" 
      popd 
     ) 
     popd 
    ) 
    popd 
) 
+2

类型'为/?'内进入命令提示符窗口,阅读帮助,特别是与部分重写'〜'修饰符... – aschipfl

+0

在副本前面插入一个回显,并查看必须更改的内容。 – LotPings

+0

是否要将重命名的文件从day文件夹复制到位于月份文件夹内的新'cloud'文件夹,还是希望将day文件夹也复制到'cloud'文件夹中?例如:'2017 \ 04 \ 25 \ soig_file.ers'到'2017 \ 04 \ cloud \ soig_file_cloud.ers'或者'2017 \ 04 \ 25 \ soig_file.ers'到'2017 \ 04 \ cloud \ 25 \ soig_file_cloud .ers'? – aschipfl

回答

0

这可能比你做得更容易。如果这反映了正确的复制命令,请删除echo。你可以通过将你的头部朝下放到FOR /?的输出中来获得。

FOR /F "usebackq tokens=*" %%f IN (`DIR /S /B /A:-D "*.ers"`) DO (
    echo COPY "%%~f" "%%~dpnf_cloud.%%~xf" 
) 
0

下应该工作没关系你,(它应该是所有匹配.ers文件与更新的名字在他们的树的上一级复制到现有云目录)

@FOR /D %%Y IN ("C:\Data\20*") DO @FOR /D %%M IN ("%%Y\*" 
) DO @FOR /D %%D IN ("%%M\*") DO @IF /I NOT "%%~nxD"=="cloud" FOR %%F IN (
    "%%~D\soig_*.ers") DO @COPY "%%F" "%%~M\cloud\%%~nFcloud%%~xF">NUL 

我没有将任何东西,以防止文件的名字已经存在,云目录

相关问题