根据文件名创建文件夹而不覆盖

时间:2015-05-14 08:07:31

标签: batch-file directory filenames

制作一个脚本,员工扫描学生通过复印机检查证书,然后将副本放到某个位置

以下脚本执行以下操作

1)扫描到C:\ users \ location as filename.pdf(工作人员将在复印机上手动输入STudent编号,并将文件名保存为)

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

1 个答案:

答案 0 :(得分: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