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 For for If Kombination

Mitglied: imsvoigt

imsvoigt (Level 1) - Jetzt verbinden

04.03.2009, aktualisiert 06.03.2009, 3054 Aufrufe, 2 Kommentare

Hallo an alle,
Es ist nicht die feine Art mit fragen in ein Forum einzutreten doch ich komme gerade nicht weiter.

Hallo an alle,
Es ist nicht die feine Art mit fragen in ein Forum einzutreten doch ich komme gerade nicht weiter.


Ich habe einen Ordner mit Dateien die ich umbenennen möchte. Der zu verwendende Name steht in der jeweiligen datei.
der Name steht immer in der 10 Zeile ab dem 12 Zeichen bis zum ende der Zeile.
Ich lese momentan die Datei in eine Variable (ist aber gefährlich da die anzahl der gesamtzeichen bis Zeile 10 variiert.)
Besser ist denke ich die ganze Zeile einzulesen und dann die ersten Stellen abzuschneiden. (leider keine Ahnung wie)

2. Nun muss darauf geachtet werden das wenn die Datei bereits besteht eine .1 .. .2. .3 usw an Beispiel.txt angehangen wird --> beispiel.txt.1 bis viele
das hab ich mit goto Befehlen gemacht. Geht auch soweit. (wenn das besser geht dann auch gern anders)

Nun nach längern Erklärungen von Dingen die euch sowiso viel klarer sind als mir die eigentliche Frage.
Die bat läuft genauso wie sie soll, nur leider nur einmal. Die 1. for schleife scheint zu vergessen das sie noch nicht fertig ist und geht zum ende durch.
Kann das an dem Goto in der schleife liegen?
Ich sitze schon 2 Tage an der geschichte und bin gespannt was ihr sagt.

Viele Grüße
imsvoigt

01.
		 
02.
@echo off & setlocal enabledelayedexpansion  
03.
 
04.
set version=1 
05.
pushd   
06.
 
07.
for /f "delims=" %%i in ('dir /b /a-d *.txt') do (  
08.
 
09.
    set /p Zeile=<"%%i"  
10.
    set "Wert=!Zeile:~635,35!  
11.
	 
12.
	set tempor=%%i 
13.
	echo %%i 
14.
	goto versioncheck 
15.
   :naechste 
16.
   echo copy %%i !Wert!>> copy_me.bat 
17.
   copy %tempor% %neu%.%version% 
18.
   set version=1 
19.
)  
20.
popd 
21.
goto :eof 
22.
 
23.
 
24.
:weiter 
25.
	goto versioncheck 
26.
	 
27.
	 
28.
:versioncheck 
29.
set neu=!wert! 
30.
set neu=%neu: =% 
31.
echo %neu%.%version% 
32.
if exist %neu%.%version%  (set /a version+=1 
33.
	 
34.
		echo weiter 
35.
goto weiter 
36.
37.
goto OK 
38.
 
39.
:OK 
40.
echo ende 
41.
 
42.
echo die Datei braucht die Version %version% 
43.
 
44.
goto naechste
Mitglied: bastla
05.03.2009 um 01:38 Uhr
Hallo imsvoigt und willkommen im Forum!

Ein wenig wenig konkret ist Deine Beschreibung schon ...
... aber versuchen werde ich's trotzdem ...

Zunächst zu Deinem Code: Wenn Du das "goto versioncheck" durch ein "call versioncheck" ersetzt, sollte mehr als ein Durchlauf möglich sein.
Soweit ich das Ganze verstanden (bzw nachvollzogen) habe, wäre mein Ansatz etwa:
01.
@echo off & setlocal 
02.
 
03.
for /f "delims=" %%i in ('dir /b /a-d *.txt') do call :ProcessFile "%%i" 
04.
goto :eof 
05.
 
06.
:ProcessFile 
07.
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" %1^|findstr /b "10:"') do set "Zeile=%%b" 
08.
set "Wert=%Zeile:~11% 
09.
set "Neu=%Wert: =%" 
10.
set /a Version=1 
11.
:Loop 
12.
if not exist %Neu%.%Version% goto :DoIt 
13.
set /a Version+=1 
14.
goto :Loop 
15.
 
16.
:DoIt 
17.
echo die Datei braucht die Version %Version% 
18.
echo copy %1 %Wert%>>copy_me.bat 
19.
copy %1 %Neu%.%Version% 
20.
goto :eof
Den Sinn des Eintrages in die "copy_me.bat" kann ich allerdings gar nicht erkennen, und warum ein "copy" und kein "rename" stattfinden soll, ist mir auch nicht klar. Auch die Frage, wozu "pushd" und "popd" hier dienen sollten, konnte ich mir nicht beantworten.

Grüße
bastla

[Edit] Wenn
set /p Zeile=<"%%i"
bei Dir funktioniert hat, enthält die Datei keine Windows-Zeilenschaltungen (CR/LF) - dann wird mein Ansatz, die Zeile 10 auszulesen, wohl nicht klappen ...
[/Edit]
Bitte warten ..
Mitglied: imsvoigt
05.03.2009 um 10:41 Uhr
Hallo bastla,

Danke für deine Hilfe. Du hast trotz meiner schwammigen beschreibung genau das geschaft was ich noch brauchte.
Die vielen sinnlosen Bausteine haben sich so im probieren angesammelt. ... naja . Ich habe nun das ganze soweit bereinigt und den "\" am ende der Variabe noch entfernt.
Die Routine koppiert nun munter alle Dateien mit dem Namen aus der Zeile und achtet auf die punktversion.

Hier nochmal der Code fürs archiv.
Danke und viele Grüße
imsvoigt

01.
@echo off & setlocal 
02.
 
03.
for /f "delims=" %%i in ('dir /b /a-d *.txt') do call :ProcessFile "%%i" 
04.
goto :eof 
05.
 
06.
:ProcessFile 
07.
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" %1^|findstr /b "10:"') do set "Zeile=%%b" 
08.
set "Wert=%Zeile:~11% 
09.
set "Wert=%Wert: =%" 
10.
set "Wert=%Wert:\=%" 
11.
set /a Version=1 
12.
:Loop 
13.
if not exist %Wert%.%Version% goto :DoIt 
14.
set /a Version+=1 
15.
goto :Loop 
16.
 
17.
:DoIt 
18.
copy %1 %Wert%.%Version% 
19.
goto :eof
Bitte warten ..
Ähnliche Inhalte
Digitiales Fernsehen
Speaka + TrekStor Kombination
Frage von Player0036Digitiales Fernsehen5 Kommentare

Hallo Zusammen! Ich habe einen Problem und ich würde mich riesig freuen, wenn einer von euch erfahrenen mir dabei ...

Drucker und Scanner
Drucker-Fax-Kombination
gelöst Frage von tingelDrucker und Scanner4 Kommentare

Hallo, ich suche nach einer Drucker/Fax-Kombi. Drucker wäre toll, wenn er gleich von Werk mit einem Netzwerkanschluss ankommt. Weitere ...

Windows 10
Psexec + nircmd Kombination
gelöst Frage von knittiWindows 109 Kommentare

Hallo, brauche mal wieder Hilfe! möchte Befehle von einem auf einen anderen PC senden zum maximieren oder minimieren eines ...

Windows Systemdateien
Skript in Kombination mit PSExec
gelöst Frage von WinLiCLIWindows Systemdateien11 Kommentare

Hallo zusammen, ich würde gerne ein Skript schreiben der mich nach einem Hostnamen fragt, ich diesen eintippe, Psexec gestartet ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs10 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)8 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...