I've written a batch-file, which renames all the PDF-files in the current folder and all its subfolders.
There are problems...
When I use
For /R %%II cannot find the path of the file, name and foldername.When I don't use the above, it only finds in the current folder but the script works.
I only know the
For %%icommand to be able to useset foldername=%%iwhich is probably not how I'm supposed to do it. I now need multipledo set*in order to write each piece of information.
The result i want it from a pdf in path: C:\Users\Downloads\AREA 1\xyyz.pdf to automatically rename to C:\Users\Downloads\AREA 1\AREA 1_xyyz.pdf when the script is in the map C:\Users\Downloads
And preferably move the file over afterwards.
Yet I cannot seem to be able to command the file itself when using For /R.
When using the For /R command I cannot seem to access the right filename, mapname and filepath in order to change it's name.
echo on
setlocal enabledelayedexpansion
set "folderpath=%~dp0"
cd %folderpath%
for /r %%I in ("*.pdf") do ( for %%i in (.) do ( (set fname=%%i) & for %%I in (.) do ( (set fldnm=%%~nxI) & call :rename ) ) )
@pause
goto :eof
:rename
echo "%fldnm%_%fname%"
ren "%fname%" "%fldnm%_%fname%"
@pause
goto :eof
endlocal
pause
I don't understand what your code does... However, this solution does what your description specify:
EDIT: Small rename problem fixed