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

Frage Entwicklung Batch & Shell

Variablen lassen sich nicht in TXT abspeichern.

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

02.08.2007, aktualisiert 05.08.2007, 3593 Aufrufe, 11 Kommentare

Hi,

ich hab mir eine Batchdatei gebaut die Dateinamen nach datum ausliest und in einer txt abspeichert.
Das peroblem ist jetzt mittels echo kann ich mir die dateinamen zwar anzeigen lassen aber sie lassen sich nicht in die TXT schreiben. Variable d und e sollen in die txt.

Vorschläge?

01.
@ECHO OFF 
02.
Setlocal EnableExtensions  
03.
setlocal EnableDelayedExpansion 
04.
 
05.
for /f "tokens=1-4 delims=. " %%a in ('date /t') do ( 
06.
 
07.
set "aktdat=%%c%%b%%a" 
08.
echo !aktdat! 
09.
10.
 
11.
for /f "tokens=1-3,7,8 delims=. " %%a in ('dir /a-d E:\vds\meteo-rechnungen\') do ( 
12.
 
13.
    if %aktdat% lss %%c%%b%%a (	 
14.
	echo %%d.%%e > datum.txt               )     
15.
 
16.
17.
pause
Mitglied: Biber
02.08.2007 um 16:32 Uhr
Moin ooAlbert,

Vorschläge hätte ich...
Hauptsächlich sollte die untere FOR-Anweisung modifiziert werden.
01.
@ECHO OFF 
02.
Setlocal EnableExtensions  
03.
setlocal EnableDelayedExpansion 
04.
Set "mydir=E:\vds\meteo-rechnungen\" 
05.
Set "out=datum.txt" 
06.
REM ------hier eine Anpassung --nächsten 2 Zeilen bitte löschen 
07.
set "out=con:" 
08.
set "myDir=D:\temp\" 
09.
REM ------Ende Anpassung -- 
10.
 
11.
for /f "tokens=1-4 delims=. " %%a in ('date /t') do ( 
12.
 
13.
set "aktdat=%%c%%b%%a" 
14.
echo !aktdat! 
15.
16.
 
17.
for /f "tokens=1-3,6* delims=. " %%a in ('dir /a-d /-c %myDir%^|find "."') do ( 
18.
if %aktdat% lss %%c%%b%%a (  
19.
echo %%d.%%e >> %Out% ) 
20.
 
21.
22.
pause
Desweiteren decken sich Beschreibung des Schnipsels und der Inhalt des Schnipsel nicht vollständig..
...ich hab mir eine Batchdatei gebaut ...
Jepp.
...die Dateinamen nach datum ausliest
Das kann ich nicht sehen.
/a-d bedeutet: "mit Attribut: kein Directory".
Das ist auch sinnvoll.
Aber "nach Datum" wäre
/o:d bedeutet "mit Order: nach Datum"

Der zusätzliche "/-c"-Parameter gibt die Datei-Größe ohne Tausenderpunkte aus, was mir/uns ermöglicht, die beiden Summenzeilen (soundsoviel Dateien, soundsoviel Verzeichnisse) wegzufiltern bzw. wegzuFINDen.

Dennoch bleibt das Problem, dass damit durch die LESS-Bedingung
...if %aktdat% LSS %%c%%b%%a
...nur Dateien angezeigt werden mit einem Änderungsdatum größer heute.
Also Dateien, die ab morgen erstellt werden sozusagen.

Das sind oft nicht viele.
...works as designed.. sage ich dann immer.

Wenn Du aus dem LSS ein LEQ (kleiner oder gleich) machst,
dann siehst Du wenigstens die Dateien von heute.

Grüße
Biber
Bitte warten ..
Mitglied: verkehrsberuhigt
02.08.2007 um 16:37 Uhr
Das sind oft nicht viele.

JAAAAAAAAAAAAAA - gib mir Deine Autogrammadresse - sofort!
Bitte warten ..
Mitglied: ooAlbert
02.08.2007 um 16:43 Uhr
hm, stimmt ich hab den vergleich vertauscht in der bedingung das /a-d hat den sinn, das dann das datum ganz am anfang ist und man es direkt von der bildschimrzeuile abgreifen kann ;) und so das datum erstmal hat. auf die selbe weise kann man dann die anderen dateien abgreifen nur das man hier den dateinamen wegschreibt und das erneut ausgelesenen datum nur zum vergleichen benutzt.

Klappt jetzt übrigens prima.
Bitte warten ..
Mitglied: Biber
02.08.2007 um 16:52 Uhr
[Nachtrag]
Ach ja, eben erst gesehen:

Wenn Du die erste FOR-Anweisung so änderst:
01.
for /f "tokens=1-3 delims=. " %%a in ('date /t') do set "aktdat=%%c%%b%%a" 
02.
echo %aktdat%
...
dann kannst Du auch auf das "Setlocal EnableDelayedExpansion" verzichten.

Falls die eigentliche Frage aber hinreichend beantwortet ist, setz bitte den Beitrag.. bla bla...

Danke
Biber
Bitte warten ..
Mitglied: ooAlbert
03.08.2007 um 13:35 Uhr
ich´nochmal...

ich hab versucht eine datumsbehandlung einzu bauen und bei einer berechnung kommt immer eine meldung:

Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.

01.
set "aktuelles_datum=%%c%%b%%a" 
02.
echo !aktuelles_datum! 
03.
 
04.
if 14 GTR %%a ( 
05.
 SET /A "Tag=14 - %%a" 
06.
 SET /A "Monat=%%b - 1" 
07.
 
08.
 SET /A "Tag_neu=30 - !Tag!" 
09.
echo !Tag_neu! 
10.
11.
if 14 LSS %%a ( SET /A "Ergebnis=%%a - 14" ) 
12.
echo %%c!Monat!!Tag_neu!
Der fehler tritt bei der berechnung des monats auf, das ist auch der einzige wert der nicht angezeigt wird am schluß.. Mir ist nur unklar woher das kommt, da die anderen berechnungen ja funktionieren.

%%a 03
%%b 08
%%c 2007

kann das wer erklären?
Bitte warten ..
Mitglied: Biber
03.08.2007 um 14:49 Uhr
Moin ooAlbert,

das geschieht, weil der "SET /A"-Befehl werte mit führender Null gemäß der Dokumentation ( Set /?) als Oktalwerte auffasst.

Oktalwerte mit "0" am Anfang gehen natürlich nur von "00", "01"....bis "07".
"08" ist keine gültige Oktalzahl.

Ist etwas ausführlicher erklärt und rauf und runter diskutiert ist es u.a. hier im MSCEBoard.

Grüße
Biber
Bitte warten ..
Mitglied: ooAlbert
03.08.2007 um 16:21 Uhr
so wie ich das sehe scheint das nur der fall für die erste zahl zu sein in der zweiten wir die null einfach ignoriert.

ich hab mal versucht die null erkennen zu lassen und dann zu eliminieren.

IF %Monat:~-2% equ 0 set "Monat=%Monat:~-1%"

scheinbar ist das nicht korrekt, bzw. es wird nichts gemacht.
Bitte warten ..
Mitglied: Biber
03.08.2007 um 18:04 Uhr
<grinz> Doch, ooAlbert,

ist alles korrekt und es wird etwas gemacht...works as designed...

Der kleine Unterschied zu Deinem ersten Ansatz mit SET /a ist:
  • mit SET /A hast Du erzwungen, dass die Variable %monat% als "arithmetische Variable behandelt werden soll. Und eine arithmetische Größe "08" oder "09" grätscht nun mal ab.. siehe oben,
  • aber jetzt erzwingst Du nicht... und der Text 08 wird mit 0 verglichen.....

Da kann nie herauskommen, dass die Bedingung erfüllt ist.

Dass Du etwas anderes meinst, kann der CMD-Interpreter nicht erkennen.

Grüße
Biber
Bitte warten ..
Mitglied: ooAlbert
03.08.2007 um 19:03 Uhr
in der variable stehen "08" deshalb muß es doch klappen wenn ich sage schau in position 2 von hinten ob das null ist und wenn dann überschreib die variable mit der ersten position des alten wertes ...

ist das denn nicht egal ob ich null als zeichen oder als wert vergleiche? wenn nicht wie müßt ich es denn dann schreiben das ich die acht als wert bekomme und damit rechnen kann?
Bitte warten ..
Mitglied: ooAlbert
04.08.2007 um 11:36 Uhr
so ich hab mir jetzt mal

%Monat:~-2% und %Monat:~-1% ausgeben lassen, da es mir irgendwie unkalr war was da rauskommt.

-2% ist nämlich nicht 0 sondern 08
-1% ist nur 8

deshalb klapt das mit dem verglaich wohl nicht. Mir fällt jetzt aber auch nichts ein das zu ändern ... Hat wer ne idee?
Bitte warten ..
Mitglied: bastla
05.08.2007 um 14:18 Uhr
Hallo ooAlbert!

Du kannst zur Position auch die Länge des Teilstrings (hier: 1) angeben, also
01.
%Monat:~-2,1%
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft
RemoteApp Anmeldedaten lassen sich bei Win7 nicht abspeichern
gelöst Frage von thomasreischerMicrosoft8 Kommentare

Hallo zusammen, ich habe gerade folgendes Problem: wir haben bei uns eine RemoteApp veröffentlicht - ich möchte, dass die ...

Batch & Shell
Variablen aus Txt datei erstellen
Frage von Ghost-7KBatch & Shell3 Kommentare

Guten Tag die Damen und Herren, ich sitze gerade daran für meine Firma ein batch zur Sicherung von Disketten ...

Batch & Shell
Batch - Random Zahl in Variable und Textdatei abspeichern
gelöst Frage von citroendsvierBatch & Shell8 Kommentare

Ich sitze an einer batch, die u.a. folgende Schritte abarbeiten soll: 1.: Namen einer anderen Batch aus einer Textdatei ...

Batch & Shell
Kombinationen - Möglichkeiten in txt schreiben lassen!
Frage von freshman2017Batch & Shell8 Kommentare

Hallo Ihr, ich würde gerne bspw. aus 5 Möglichkeiten: A B C D E die verschiedenen Kombinationen, die sich ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 18 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...