Estou tentando criar um script em lote no Windows 7 que analise os primeiros 6 números de 100s do pdf, crie uma pasta com base nos 6 números exclusivos e mova os arquivos PDF para suas pastas respeitadas. (Existem alguns .pdfs que possuem os mesmos 6 números únicos)
O lote abaixo quase funciona para mim. Ele cria as pastas para cada número único de 6 pds, mas não moverá todos os documentos:
Por exemplo:
Os movimentos a seguir para a pasta 100036
100036.pdf irá se mover, 1000361.pdf irá se mover. 1000361copy irá se mover.
Quando houver um espaço no nome do arquivo, ele não será movido para a pasta 100036.
100036 - 1.pdf, 100036 - copy.pdf não se move
Alguma idéia de como corrigir isso?
Agradeço antecipadamente:
@echo off
REM This script creates folders based on file names and moves those files into the folders.
REM *.pdf is the search term. Change this to search for different files.
REM md %name:~0,6% will make a directory based on the first 6 characters of the file name. Change to 5% for the first 5 characters.
REM move %* %name:~0,6% will move the file to the directory based on the first 6 characters of the file name. Change to 5% for the first 5 characters.
for /f %%F in ('dir/b/a-d *.pdf') do call :sub1 %%F
goto :eof
:sub1
set name=%1
md %name:~0,6%
move %* %name:~0,6%
Editado:
@echo off
for /f "tokens=*" %%F in ('dir/b/a-d *.pdf') do call :sub1 %%F
goto :eof
:sub1
set name=%1
md %name:~0,6%
move %* %name:~0,6%