Poniższe rozwiązanie śmiga, sprawdziłem i działa ok. Pomijam kwestię braku Admina przez właczone UAC albo nie uruchomienie batcha z takimi prawami. To już sobie sam ogarnij. I na przyszłośc, ja rozumiem, że to dział Newbie. Ale kombinuj najpierw sam do BÓLU albo jak wolisz do "bulu", bo tak należy pisać chyba. A przynajmniej jeśli jest się fanem Pana prezydenta Komorowskiego i Jego szogunów ;P Chociaż według SJP to raczej "ból" jest ok. Również i ja ku tej formie się skłaniam. Ale to taka moja dygresja i offtopic.
Anyway, kombinuj najpierw zawsze sam, w dowolnej kwestii, nie tylko IT. Nie jestem żadnym ekspertem w batchach i żeby nie błądzić samemu, poświęciłem 5 minut na googlowanie zapytań po angielsku. A wszystko jest do znalezienia z przykładami. To co tutaj użyłem też, bo bym nie wpadł nigdy, że w batchach są też fukcje. Pierwszy raz się z tym spotkałem - poważnie. Ale każdy jężyk programowania ma chyba funkcje, to i batch też musi je obsługiwać w jakiś sposób.
Także wszystko sobie zawsze wyszukuj, tylko trzeba chcieć to robić i używać na spokojnie mózgu. By znaleźć - przykładadowo, na Stack OverFlow czy innych forach jakiś kod. Dopiero w ostateczności piszesz na jakiekolwiek forum. Z pytaniem jak coś zrobić, ale też nie żądaj nigdy gotowców, tylko podpowiedzi. Także nie należy się nigdy poddawać :) Powodzenia :)
@echo off
cls
call :setfile D:\!\dblank.txt
if not exist %filepath% (mkdir %filepath%)
echo.> %file%
echo Writing text to %filename% >> %file%
goto :eof
:setfile
set file=%~f1
set filepath=%~dp1
set filename=%~nx1
goto :eof