создание папок на основе имени файла без перезаписи

Работа над сценарием, с помощью которого сотрудники сканируют сертификаты экзаменов студентов с помощью фотокопировальной машины, а затем размещают копию в определенном месте.

приведенный ниже скрипт делает следующее

1) Сканирует в C:\users\location как имя файла.pdf (Сотрудник вручную введет номер STudent на копировальной машине и сохранит имя файла как это)

2) Затем скрипт создает папку на основе имени файла, поэтому здесь он создаст папку с именем /filename

3) Перемещает PDF в эту папку

все работает нормально, но я пытаюсь изменить его, чтобы он не перезаписывал

поэтому, если, например, сотрудник делает опечатку в студенте1, а студент1 уже существует, мы не хотим его переопределять.

какие-либо предложения

script, как показано ниже, вы можете проверить его

Code:

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

)
popd

person user2495138    schedule 14.05.2015    source источник


Ответы (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
person npocmaka    schedule 14.05.2015