【问题标题】:creating folders based on Filename without overwriting基于文件名创建文件夹而不覆盖
【发布时间】:2015-07-25 18:37:44
【问题描述】:

编写脚本,工作人员通过复印机扫描学生考试证书,然后将副本放置到某个位置

下面的脚本执行以下操作

1) 扫描到C:\users\location为filename.pdf(工作人员会在复印机上手动输入STudent number,然后保存文件名)

2) 脚本然后根据文件名创建文件夹,所以这里它将创建一个名为 /filename 的文件夹

3) 将 PDF 移动到该文件夹​​中

一切正常 但是我正在尝试对其进行修改使其不会覆盖

因此,例如,如果工作人员打错了 student1 并且 student1 已经存在,我们不想覆盖它

任何建议

脚本如下,你可以测试一下

Code:

@echo off
pushd C:\Users\location
for %%F in (*.pdf) do (
  2>nul md "%%~nF"
  >nul move /y "%%~nF*.*" "%%~nF"

)
popd

【问题讨论】:

    标签: batch-file directory filenames


    【解决方案1】:

    你不能用 MD 覆盖文件夹所以我想你是在谈论移动操作:

    @echo off
    pushd C:\Users\location
    for %%F in (*.pdf) do (
      2>nul md "%%~nF"
      echo n|move /-y "%%~nF*.*" "%%~nF"  >nul 2>nul
    
    )
    popd
    

    或(可能取决于本地设置和move /-y 的预期输入)

    @echo off
    pushd C:\Users\location
    for %%F in (*.pdf) do (
      2>nul md "%%~nF"
      echo n|move /-y "%%~nF*.*" "%%~nF" 2>&1 |find /i "0 files(s)" >nul 2>nul || (
          2>nul md "%%~nF_2"
          move "%%~nF_2*.*" "%%~nF_2" >nul 2>nul
      )
    
    )
    popd
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2018-09-26
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多