Zapisanie ścieżki do pliu *.bat

Witam!

Jestem w trakcie pisania pewnego program, który łączy się z serwerem FTP. Działanie jego odbywa się na zasadzie stworzenia przez program pliku *.bat w którym zostaje zapisana ścieżkę do plików, które mają być skopiowane. Następnie program odpala plik *.bat i rozpoczyna się kopiowanie. I tu zaczyna się problem o to fragment kodu:

system(“echo @echo off>>ko.bat”);

system(“echo cls>>ko.bat”);

system(“echo copy %UserProfile%\moja_strona\*.html %UserProfile%\Pulpit>>ko.bat”);

system(“echo exit>>ko.bat”);

system(“start ko.bat”);

W wyniku wykonania tego programu w pliku zostaje zapisana ścieżka:

@echo off

cls

copy %UserProfile%\moja_strona*.html %UserProfile%\pulpit

exit

Jak powinie wyglądać kod by ścieżka zapisana do pliku wyglądała następująco:

@echo off

cls

copy “%UserProfile%\moja_strona*.html” “%UserProfile%\pulpit”

exit

Oczywiście chciałbym zwrócić uwagę, że program zapisze do pliku *.bat nie %UserProfile% tylko odpowiednią ścieżkę. Korzystam z dwóch systemów operacyjnych XP i Vista ten problem nie występuje w Vista ponieważ tam ścieżka nie składa się z dwóch słów oddzielonych od siebie np. Document and Settings tylko User więc “” są nie potrzebne. Proszę o pomoc w rozwiązaniu tego problemu.

system("echo copy \"%UserProfile%\\moja_strona\\*.html\" \"%UserProfile%\\Pulpit\">>ko.bat");

Tylko nie rozumiem czemu nie otworzyć plik strumieniem i nie zapisać tego po ludzku?

fstream f;

f.open("ko.bat",ios::out);

f<<"@echo off"<
f.close();

albo bezpośrednio nie skopiować pliku/plików za pomocą SHFileOperation (WinAPI) w tym przypadku ścieżkę UserProfile można wydobyć za pomocą GetEnvironmentVariable (WinAPI)

Oczywiście zadziałało :smiley: Pokazałeś mi kilka różnych sposobów postaram się wypróbować je wszystkie. Dziękuje ci za pomoc =D> :smiley: