mimo ze na ekranie pojawia sie jego sciezka dzieki temu dir
Bo jak ma działać, użyj /? przy dir i zobacz, do czego służy przełącznik /s:
/S Displays files in specified directory and all subdirectories.
Co z tego, że dir wylistuje ci dany plik, skoro rename nie potrafi wyszukiwać, czy wyświetlać listy plików. Używając rename musisz jako jeden z parametrów podać ścieżkę do pliku i nie ma znaczenia to, że wcześniej dir wyświetlił ci w konsoli ścieżkę dla tego pliku. Komputer to głupie urządzenie i się nie domyśli o co chodzi.
Możesz użyć dir z dodatkowym switchem /b i zapisać ścieżkę do twojego pliku w zmiennej, a następnie w rename tę zmienną wykorzystać.
@echo off
dir /s /b file.txt >> var.txt
set /p patch=<var.txt
ren %patch% asd.txt
del var.txt
...plik var.txt stworzyłem tylko dlatego, że nie potrafię "bezpośrednio" przypisać wyniku wykonania polecenia dir do zmiennej. A na pewno jest to możliwe. :P