Pipe schließen
-
Hallo,
ich habe unter Dos folgendes Problem.
Ich möchte gerne eine Pipe schließen nachdem ein Prozess beendet wird, jedoch bekomme ich andauernd die Meldung wenn ich Strg + C drücke:
Ein Prozess hat versucht, zu einer nicht bestehenden Pipe zu schreiben.
Jetzt könnte man mit
exit
den Prozess beenden. Jedoch kriege ich es nicht hin den Prozess zu beenden.
Mein Batchprogramm lautet so:
cmd /k net statistics server | find "Statistik" > "C:\Dokumente und Einstellungen\Name\Desktop\out.txt" exit
Ich muss aber jedesmal manuell exit eingeben. Kann man das automatisieren?
Eigentlich war die Grundidee ein Programm was ähnlich unter Linux dem Befehl
uptime
ist. Also direkt die Zeit ausrechnet, an der man am Rechner sitzt. Jedoch kriege ich es nicht so ganz umgesetzt.
Danke
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum Themen rund um den PC verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
upstalsboom schrieb:
Eigentlich war die Grundidee ein Programm was ähnlich unter Linux dem Befehl uptime ist. Also direkt die Zeit ausrechnet, an der man am Rechner sitzt.
Warum machst Du das dann nicht ?
Google sagt:
http://www.codeguru.com/forum/archive/index.php/t-304599.htmlHabs mit VS2010 kompiliert; scheint ganz gut zu funktionieren.
typedef LONG (WINAPI *pNtQuerySystemInformation)(UINT,PVOID,ULONG,PULONG); typedef struct _SYSTEM_TIME_OF_DAY_INFORMATION { LARGE_INTEGER BootTime; LARGE_INTEGER CurrentTime; LARGE_INTEGER TimeZoneBias; ULONG CurrentTimeZoneId; } SYSTEM_TIME_OF_DAY_INFORMATION, *PSYSTEM_TIME_OF_DAY_INFORMATION; BOOL GetUpTime(SYSTEMTIME *pstBootTime) { pNtQuerySystemInformation pfNtQuerySystemInformation; SYSTEM_TIME_OF_DAY_INFORMATION SysTimeInfo; FILETIME ftBootTime; pfNtQuerySystemInformation = (pNtQuerySystemInformation) GetProcAddress(GetModuleHandle(_T("ntdll")),"NtQuerySystemInformation"); if(!pfNtQuerySystemInformation) return FALSE; if(pfNtQuerySystemInformation(3,&SysTimeInfo,sizeof(SysTimeInfo),0) != NO_ERROR) return FALSE; ftBootTime = *(FILETIME *)&(SysTimeInfo.BootTime); FileTimeToLocalFileTime(&ftBootTime,&ftBootTime); FileTimeToSystemTime(&ftBootTime,pstBootTime); return TRUE; } int _tmain(int argc, _TCHAR* argv[]) { DWORD seconds; SYSTEMTIME stBootTime; if(GetUpTime(&stBootTime)) { _tprintf( _T("System Uptime: %d/%d/%d %d:%d:%d\n"), stBootTime.wMonth, stBootTime.wDay, stBootTime.wYear, stBootTime.wHour, stBootTime.wMinute, stBootTime.wSecond); } return 0; }
-
ich hab kein vs2010 installiert, zu faul, bei so einer langen installation..
wollte mit batchprogrammierung ein bischen übung bekommen
danke für den ansatz