Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - mit vbs-Sequenz - funktioniert nicht auf WIN Vista

Frage Entwicklung Batch & Shell

Mitglied: onegasee59

onegasee59 (Level 2) - Jetzt verbinden

20.11.2008, aktualisiert 24.12.2008, 5218 Aufrufe, 17 Kommentare

Hallo,

habt Ihr einen Idee warum diese Sequenz einer Batch auf XP hervorragend funktioniert, jedoch unter Vista falsche Ergebnisse liefert?

01.
@echo off & setlocal 
02.
set "NoFF=%temp%\NoFF.vbs" 
03.
set "Verz=%userprofile%\Favoriten" 
04.
set "inhalt=Nicht Leer" 
05.
echo %Verz% 
06.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):WScript.Echo f.Files.Count+f.SubFolders.Count>%NoFF% 
07.
if exist "%Verz%" for /f %%i in ('cscript //nologo %NoFF% "%Verz%"') do if %%i==0 set inhalt=Leer 
08.
echo %inhalt% 
09.
del %NoFF% 
10.
endlocal 
11.
pause
Wenn kein Ordner "Links" und keine URL mehr unter "Favoriten" vorhanden ist meldet die Batch unter Win XP korrekt Verzeichnis "Leer" unter Vista jedoch "Nicht Leer".

Sehr eigenartig.

Eine Idee?

Gruß
onegasee59
Mitglied: bastla
20.11.2008 um 23:10 Uhr
Hallo onegasee59!

Versuch es mit "Favorites" anstelle von "Favoriten" ...

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
20.11.2008 um 23:19 Uhr
Danke bastla,

Leider nein - Ändert nichts - Vista liefert falsches Ergebnis.

Gruß
onegasee59
Bitte warten ..
Mitglied: bastla
20.11.2008 um 23:25 Uhr
Hallo onegasee59!

Vielleicht hast Du eine "desktop.ini" im Ordner (dir /a sollte sie anzeigen, nach einem "attrib -h -s" kannst Du sie auch per Batch löschen) ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
20.11.2008 um 23:33 Uhr
Moin onegasee59,

was liefert denn der VBS-Schnipsel, wenn er schon nicht 0 liefert?
Oder wird er gar nicht gefunden/ausgeführt?

Im Nebel mitstochernd
Biber

P.S. @bastla: die desktop.ini ist mit gleicher Wahrscheinlichkeit auch unter XP vorhanden....
Bitte warten ..
Mitglied: bastla
20.11.2008 um 23:51 Uhr
@Biber
Is klar, war aber das Einzige, was bei mir vorhin eine erfolgreiche "Leermeldung" verhindert hatte ...

@onegasee59
Um im Fall des Falles noch mehr eingrenzen zu können, kannst Du den Script-Teil nur "Files" oder nur "Subfolder" suchen lassen, indem Du in Zeile 6 entweder
+f.SubFolders.Count
oder
f.Files.Count+
herausnimmst.

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 01:18 Uhr
Hallo Biber, Hallo bastla,

1.
"desktop.ini" ist weder bei XP noch Vista unter ´Favoriten vorhanden
(geprüft über versteckte Systemdateien und alle Dateien anzeigen)

2.
ich MUSS komplett alles ab "...Favoriten\..... löschen, Ordner und einzelne URL.
Daher benötige ich zwingend die Info ob ab "...Favoriten\..." Ordner und/oder einzelne Url vorhanden sind.

3.
Wenn ...Favoriten\... vollständig leer, liefert der Schnipsel..
01.
if exist "%Verz%" for /f %%i in ('cscript //nologo %NoFF% "%Verz%"') do set "inhalt=%%i"
für %inhalt% unter Vista = 1 unter XP = 0

4.
Über Variable und OS-Prüfung wird entweder "Favoriten" oder "Favorites" gesetzt.

gruß
onegasee59
Bitte warten ..
Mitglied: bastla
21.11.2008 um 01:24 Uhr
Hallo onegasee59!

Du könntest, wie oben angeführt, noch herausfinden, ob es sich bei dem einen ermittelten Objekt um eine Datei oder einen Ordner handelt ...

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 01:26 Uhr
gelöscht
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 01:57 Uhr
Zitat von bastla:
Du könntest, wie oben angeführt, noch herausfinden, ob es sich bei dem einen ermittelten Objekt um eine Datei oder einen Ordner handelt ...

01.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):WScript.Echo f.SubFolders.Count>%NoFF% 
02.
if exist "%Verz%" for /f %%i in ('cscript //nologo %NoFF% "%Verz%"') do set "inhalt=%%i"
Ergebnis für %inhalt%
XP = 0
Vista = 0

01.
  
02.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):WScript.Echo f.Files.Count>%NoFF% 
03.
if exist "%Verz%" for /f %%i in ('cscript //nologo %NoFF% "%Verz%"') do set "inhalt=%%i"
Ergebnis für %inhalt%
XP = 0
Vista = 1

gruß
onegasee59
Bitte warten ..
Mitglied: bastla
21.11.2008 um 07:49 Uhr
Hallo onegasee59!

Dann schaun mer mal:
01.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):For Each File In f.Files:WScript.Echo File.Name:Next>%NoFF% 
02.
if exist "%Verz%" for /f %%i in ('cscript //nologo %NoFF% "%Verz%"') do echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 17:52 Uhr
Halo bastla,

funktioniert schon nicht unter XP.

Ordner "Links" in Favoriten = keine echo-Anzeige
Ordner "Links" in Favoriten gelöscht = keine echo-Anzeige

Ordner Links in Favoriten, unter Favoriten eine Test-Datei (URL) belassen = es wird das 1. Wort vom Datei/URL-Name angezeigt
Ordner Links in Favoriten gelöscht, in Favoriten eine Test-Datei (URL) belassen = es wird das 1. Wort vom Datei/URL-Name angezeigt

auf Vista hab ich dann nicht mehr gestestet.

Ich werd noch irre - Anscheinend gibt es in vielen Befehlsoptionen Unterschiede zwischen XP und Vista.

gruß
onegasee59
Bitte warten ..
Mitglied: bastla
21.11.2008 um 19:55 Uhr
Hallo onegasee59!

Ja, das "delims=" (um den kompletten Dateinamen anzuzeigen) für die "for"-Schleife fehlt - allerdings war der Code dazu gedacht, in Vista herauszufinden, welche Datei denn nun eigentlich gezählt worden war ...

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 21:07 Uhr
Ja, das "delims=" (um den kompletten Dateinamen anzuzeigen) für die "for"-Schleife fehlt...
OK, wird ja eh nicht benötigt., Namen müssen nicht gefunden werden nur ob Datei oder Ordner vorhanden.

allerdings war der Code dazu gedacht, in Vista herauszufinden, welche Datei denn nun eigentlich gezählt worden war ...
ahso, verstehe .... moment...

...ha - ich glaub mich laust der mit dem Zottelfell.
Ich fass es ja nicht. Da wird ne "desktop.ini" angezeigt.
Zum Teufel nochmal ich hab doch alles in den Ordneroptionen freigegeben. Wieso ist die da nicht sichtbar zu bekommen?
Unter XP gibt es keine "desktop.ini" unter Favoriten.

gruß
onegasee59
Bitte warten ..
Mitglied: bastla
21.11.2008 um 21:15 Uhr
Hallo onegasee59!
Ich fass es ja nicht. Da wird ne "desktop.ini" angezeigt.
Darauf hätte ich eigentlich auch kommen können - dann hätte ich vielleicht "dir /a" empfohlen ...

Vielleicht hattest Du unter XP keine, weil es wegen des ohnehin funktionierenden Löschens keine Notwendigkeit gab, per Explorer "nachzusehen".

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 21:43 Uhr
Zitat von bastla:
Hallo onegasee59!
> Ich fass es ja nicht. Da wird ne "desktop.ini" angezeigt. Darauf hätte ich eigentlich auch kommen können - dann hätte ich vielleicht "dir /a" empfohlen ...
Ich habe jetzt von XP aus auf die Vista Favoriten geschaut per Explorer und siehe da, jetzt ist da auch die "desktop.ini" zu sehen.

Vielleicht hattest Du unter XP keine, weil es wegen des ohnehin funktionierenden Löschens keine Notwendigkeit gab, per Explorer "nachzusehen".
Habe es eben gerade nochmal gemacht - nichts - keine "desktop.ini" unter XP-Favoriten zu finden
Das erklärt jetzt auch die obigen Ergebnisse für %inhalt% bei XP und Vista

Ich komme jetzt zwar auch so mit dem Script weiter, weil ich nur bei %inhalt%==1 die ev.t vorhandene "desktop.ini" abfragen muss.
Dennoch Frage/Bitte:
Könntest Du mir die Scriptsequenz im Schnippsel auch so umstricken das eine evt. "desktop.ini" von vornherein abgefangen wird und nicht das Ergebnis verfälscht?

gruß
onegasee59
Bitte warten ..
Mitglied: bastla
21.11.2008 um 21:59 Uhr
Hallo onegasee59!

Kannst Du mir die Sriptsequenz im Schnippsel auch so umstricken das eine evt. "desktop.ini" von vornherein abgefangen wird und nicht das Ergebnis verfälscht?
Falls Du damit meinst, es solle beim Zählen eine im übergebenen (Start-)Ordner enthaltene "desktop.ini" ignoriert werden, dann etwa so:
01.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):WScript.Echo f.Files.Count+f.SubFolders.Count+fso.FileExists(WScript.Arguments(0)^& "\desktop.ini")>%NoFF%
Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
21.11.2008 um 22:20 Uhr
Hallo,
01.
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set f=Fso.GetFolder(WScript.Arguments(0)):WScript.Echo 
02.
> f.Files.Count+f.SubFolders.Count+fso.FileExists(WScript.Arguments(0)^& "\desktop.ini")>%NoFF% 
03.
> 
Nicht nur etwa - das wars....Treffer, versenkt...

bastla ist der Champion ... bastla ist der Champoin...

vielen vielen Dank

Gruß und schönes Wochenende.
onnegasee59
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Batch & Shell
Variablen von Batch zu VBS übergeben
gelöst Frage von ciejayBatch & Shell10 Kommentare

Hallo liebe Com, ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger. ...

Batch & Shell
Base64 Decode (Batch,VBS)
gelöst Frage von clragonBatch & Shell26 Kommentare

Hey Leute Ich suche gerade nach einem kleinen VBS schnipsel für mein aktuelles Batch Projekt. Das Schnipsel soll in ...

Batch & Shell
VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen)
gelöst Frage von Luuke257Batch & Shell5 Kommentare

Hallo zusammen! Vorweg, ich bin absoluter neuling im Scripten, ich habe mir das alles nur so zusammengebastelt und versuche ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 7 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 8 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1011 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen18 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...