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-Datei zum Schreiben von Zahlen in eine txt-Datei

Mitglied: mopsi007

mopsi007 (Level 1) - Jetzt verbinden

31.12.2010, aktualisiert 23:53 Uhr, 6761 Aufrufe, 4 Kommentare

Hi! Ich hab mich noch nie mit Batchprogrammen beschäftigt, bin auch was das Programmieren betrifft, nicht so der Könner. Aber ich hab ein Problem: Ich will was in einer bestimmten Reihenfolge ausdrucken (eine Bedienungsanleitung) und da das über 400 Seiten sind hatte ich folgende Idee: Seite 1 und 2 auf die Vorderseite des Blattes und 3 und 4 auf die Rückseite des Blattes, dann wieder Seite 5 und 6 auf die Vorderseite des nächsten Blattes und so weiter (gedruckt soll im Querformat werden).
Ich hab kein Tool gefunden, das so drucken kann und auch mein Canon Drucker unterstützt das nicht direkt. Man kann nur einzelne Seiten eingeben, durch Beistriche getrennt.
Es geht jetzt genau um diese Zahlenwerte für einen (einseitigen) Druckdurchlauf. Also bei 418 Seiten müssten da stehen 1,2,5,6,9,10,13,14 usw.
Für den zweiten Durchlauf (Rückseite der bereits bedruckten Blätter) müssten dann die Seiten 3,4,7,8,11,12,15,16 gedruckt werden.

Wie schaffe ich es, eine txt Datei zu erstellen (mit Hilfe einer Batch Datei) wo obig beschriebene Zahlen ohne Leerzeichen und ohne Zeilenumbrüche in je einem Block stehen, sodass man einfach mit copy-paste die Zahlen, jeweils durch Beistriche getrennt, in das Druckerprogramm kopieren kann.

Die Zahlen und die Beistriche hab ich geschaft, aber ich habs nicht geschaft, den Zeilenumbruch rauszubekommen.

Mein bisheriges Batch (besser gesagt der erste Durchlauf, für den 2. Durchlauf hab ich ein 2. Batch gemacht):

@echo off
cls
set /p start=Erste Seite:
set /p ende=Letzte Seite:
set /a counter=%start%-1
set /a subcounter=0

:loop
set /a counter+=1
set /a subcounter+=1
if %subcounter%==1 goto weiter
if %subcounter%==2 goto weiter
echo %counter%,>>Seiten2.txt

:weiter
if %subcounter%==4 set subcounter=0
if %counter%==%ende% goto end
goto loop

:end
pause


Vielleicht weiss wer was!

Danke
Mitglied: rubberman
01.01.2011 um 00:09 Uhr
Hallo mopsi007!

@echo off &setlocal enabledelayedexpansion
set /a seiten=418

for /l %%a in (1,1,%seiten%) do (
  set /a "n=(%%a + 3) %% 4"
  if !n! leq 1 set "vor=!vor!%%a,"
  if !n! geq 2 set "rueck=!rueck!%%a,"
)

>seiten.txt echo %vor:~,-1%
>>seiten.txt echo %rueck:~,-1%
Happy New Year an alle
rubberman
Bitte warten ..
Mitglied: mopsi007
01.01.2011 um 00:42 Uhr
Boa VIELEN DANK, unglaublich, ich hab gedacht ich werd mit dem Problem alt werden, weil ich hab ganz viel im Internet gesucht, auch hier.

Also die Lösung hat nichts mit dem zu tun, was ich bisher von Batchprogrammen gekannt habe, so mit Schleifen und so. Das ist schon ziemlich komplex in meinen Augen.


Ich danke dir !!

HAPPY NEW YEAR an alle!!
Bitte warten ..
Mitglied: rubberman
01.01.2011 um 02:39 Uhr
Hallo mopsi007 und (bevor ich's wieder vergesse) willkommen im Forum.

Dann erkläre ich dir noch ein paar Dinge, damit du auch verstehst wie es funktioniert.

Das SETLOCAL ENABLEDELAYEDEXPANSION sorgt dafür, dass Umgebungsvariablen innerhalb einer Zeile oder eines Blocks immer zum aktuellen Wert aufgelöst werden. Dabei werden die Variablennamen in Ausrufezeichen, statt in Prozentzeichen gefasst.

Die FOR /L Schleife weist der Laufvariablen eine inkrementierte (oder auch dekrementierte) Abfolge von numerischen Werten zu. Der Klammerausdruck bedeutet dabei (Start,Schritt,Ende). Für dein Beispiel also: Angefangen bei 1 immer um 1 inkrementiert, bis 418 erreicht ist.

Die nächste Zeile (5) ist die eigentlich interessante.
Die Modulofunktion mit dem Operator % (im Batch %%) gibt den Rest einer Division wieder. Da es sich bei dir immer um eine Abfolge von 4 Seiten handelt (2 auf Vor- und 2 auf Rückseite), ist der Divisor 4. Die Variable n hat also immer den Wert des Rests, der nur zwischen 0 und 3 liegen kann.
(1 + 3) / 4 = 1 ... Rest 0
(2 + 3) / 4 = 1 ... Rest 1
(3 + 3) / 4 = 1 ... Rest 2
(4 + 3) / 4 = 1 ... Rest 3
(5 + 3) / 4 = 2 ... Rest 0
(6 + 3) / 4 = 2 ... Rest 1
usw.

Nun musst du nur noch prüfen, ob n kleiner oder gleich 1 ist (Vorseite), bzw. größer oder gleich 2 (Rückseite) und die entsprechende Variable (vor bzw. rueck) um den aktuellen Wert der Laufvariablen %%a und ein Komma erweitern.

Hoffe das hilft.

Grüße
rubberman
Bitte warten ..
Mitglied: mopsi007
02.01.2011 um 01:15 Uhr
Vielen Dank für die Erklärungen, werd mich mal intensiver reinhauen, find das ziemlich spannend, was man so mit Batch alles machen kann.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch : TXT-Datei auslesen
gelöst Frage von Newplay123Batch & Shell20 Kommentare

Hallo, ich habe eine Textdatei mit dem Inhalt " "Test" ". Also die zweiten Anführungszeichen sind auch mit in ...

Entwicklung

Batch oder Powershell für .txt-Datei

gelöst Frage von freshman2017Entwicklung5 Kommentare

Hallo liebe Gemeinde, ich habe eine .txt-Datei, die aus einer Artikelnummer und einem Bildname bestehen soll. Ausgangsdatei (export.txt) ist ...

Windows 7

BATCH: Alter einer TXT-Datei bestimmen

gelöst Frage von ahstaxWindows 75 Kommentare

Hallo, wie bekomme ich mit einer DOS-Batch das Alter einer TXT-Datei bestimmt und lassen dann, bspw bei Alter >16h, ...

Batch & Shell

Per Batch eine XLS-Datei in eine TXT-Datei umwandeln

Frage von skiing69Batch & Shell5 Kommentare

Hallo Wissende, ich möchte täglich automatisiert, ohne das Programm Excel zu öffnen, eine XLS-Datei in eine TXT-Datei (Feldtrennzeichen als ...

Neue Wissensbeiträge
Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 13 StundenInternet3 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Speedtest.cmd Via Aufgabenplanung stündlich oder ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 1 TagAdministrator.de Feedback4 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 1 TagHumor (lol)2 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Sicherheit
Diverse Sicherheitsprobleme aus dem Hause Intel
Tipp von DerWoWusste vor 2 TagenSicherheit

Unter anderem muss man mal wieder die Treiber für Intel HD Graphics updaten

Heiß diskutierte Inhalte
Netzwerkmanagement
Werde dauernd aus dem WLAN geworfen (RouterOS)
gelöst Frage von amdkeksNetzwerkmanagement19 Kommentare

Hallo Zusammen, ich habe gestern ein update meiner Mikrotikgeräte gemacht und habe nun überall Version 6.45.5 drauf. Mikrotik Routerboard, ...

Festplatten, SSD, Raid
Größe der Partition lässt sich nicht ändern mit gparted
Frage von achkleinFestplatten, SSD, Raid17 Kommentare

Hallo, ich habe eine 480GB auf eine 1TB-SSD geklont. Jetzt möchte ich den freien Speicherplatz per gparted an die ...

Windows Installation
Installation und Admin-Rechte
Frage von UserUWWindows Installation16 Kommentare

Annahme: UAC ist aktiv, der User ist "normaler" Benutzer. Eine Installation via setup.exe kann man in der Regel auf ...

Sicherheit
Wie Kann Man eine IT-Notfallhandbuch erstellen für petasan
Frage von 142658Sicherheit14 Kommentare

Hallo Leute ich muss bald meine abschlussprojekt schreiben und brauch dringend hilfe wie man ein IT-Notfallhandbuch erstellen für Petasan(eine ...