plik.bat jak uruchomić za pomocą c++

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
nie potrafię otworzyć pliku: plik.bat za pomocą system("plik.bat")
po prostu plik.bat sie nie uruchamia... jakieś rady odnośnie plików batch ??


a teraz drugi problem .... jeśli np chce uruchomić komendę dosowa za pomocą "system()"
np: system("dir \"C:\\documents and settings\" /s/a:a/b > file.txt");
gdzie nazwa składa sie z kilku wyrazów wyświetla mi komunikat ' parameter format not correct - "c:\documents '
wychodzi na to ze odczytuje do białego znaku czyli spacji....
co ciekawe gdyby zamienic \"C:\\documents and settings\" na np C:\nvidia to wszystko chodzi jak trzeba...

proszę o pomoc lub o jakieś rady.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
a tak uniersalnie to powiem ci tak ... tam gdzie w cmd uzylbys " " to tutaj uzj \" poprostu
 

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
Co do tego polecenia z DIR, wszystko jest fajnie, tylko backslashe muszą być podwójnie, napisałeś "C:\\Documents and Settings\" <-- ten drugi ukośnik też musi być podwójny ;]
 

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
nie rozumiem za bardzo tej ostatniej odpowiedzi... może trochę jaśniej jakiś przykład przecież napisałem system("dir \"C:\\documents and settings\" /s/a:a/b > file.txt"); co powinno dać w dosie: dir "C:\documents and settings" . a niestety tak tego nie czyta... teoretycznie jest to dobrze zapisane.... tak mi sie przynajmniej wydaje
smile.gif
 

loganek

Były Moderator
Dołączył
Listopad 11, 2006
Posty
563
znak \ jest traktowany jako specjalny, dla tego aby go użyć należy poprzedzić go znakiem służącym do wyświetlania znaków specjalnych(nie pamiętam jak się takowy nazywał profesjonalnie) którym jest znak \, tak więc aby użyć znaku \, należy go poprzedzić znakiem \, i powstaje \\
 

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
nawet jeśli zrobie tak jak piszecie to i tak wyświetla mi sie w okienku:

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>Parameter format not correct - "C:\documents</div>
...
wychodzi na to ze jest mały problem z spacją(białym znakiem)...
 

thc_flow

Zbanowany
Dołączył
Listopad 13, 2008
Posty
649
Dziwne, bo jakoś dostałeś jasno wytłumaczone co jest nie tak ze spacją...
CZŁOWIEKU, TAK TRUDNO ZROZUMIEĆ, ŻE JEŚLI W ŚCIEŻCE DOSTĘPU MASZ SPACJĘ TO CAŁĄ NAZWĘ PROGRAMU KTÓRY ODPALASZ MUSISZ UMIEŚCIĆ POMIĘDZY CUDZYSŁOWAMI?
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
ja jeszcze dodam ze jak piszesz bat za pomocą C++ czy wogole za pomocą czegokolwiek to na początku wygenerowanego pliku powinno znaleść się:
Kod:
chcp 1250
co zapewni ze plik bat uruchomi się poprawie także z polskimi znakami
smile.gif
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
<div class='quotetop'>CYTAT(Magnefikko @ 25.07.2009, 8:18) <{POST_SNAPBACK}></div>
Przecież tak właśnie zrobił.[/b]


Tak ale nie wiedzial czemu
smile.gif
poprostu powiedzialem ze zeby uzyskac znak " trzeba go poprzedzic \ gdyz inaczej jest traktowany specjalnie
<
 

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
to chyba nie za bardzo dobrze czytaliście mojego posta..... ponieważ napisalem
że używam \" zobaczcie w 1 poście a sie o tym przekonacie.....
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>system("dir \"C:\\documents and settings\" /s/a:a/b > file.txt"); co powinno dać w dosie: dir "C:\documents and settings" </div>

a pozniej napisałem...
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>nawet jeśli zrobie tak jak piszecie to i tak wyświetla mi sie w okienku:

CODE
Parameter format not correct - "C:\documents

...
wychodzi na to ze jest mały problem z spacją(białym znakiem)...</div>

tak btw to dzieki za to chcp 1250...
 

Mo4x

Były Moderator
Dołączył
Grudzień 26, 2005
Posty
704
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>system("dir \"C:\\documents and settings\" /s/a:a/b > file.txt");</div>
Mi ten kod działa.
 

thc_flow

Zbanowany
Dołączył
Listopad 13, 2008
Posty
649
Tyy..może on ma Windows 98;P tam takie błędy to standard...
 

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
z tego co widze to wina kompilatora.... no cóż używałem starego borlanda....
na dev C++ działa ... nie wiem czemu
smile.gif
ale ta odp od Mo4x dała mi do myslenia
<
dzięki jeszcze raz. temat do zamknięcia....
 

wawero

Użytkownik
Dołączył
Wrzesień 25, 2006
Posty
10
bardzo ciekawe ;] ze moja....
jeśli dokladnie ten sam kod z Borlanda C++ skopiowałem do DevCPP i normalnie chodzilo.... nie wyskakiwaly żadne błędy jw.
 
Do góry Bottom