ooalbert
Goto Top

Zählschleife will nicht

hi,

ich hab versucht eine zählschleife zu gestallten nach der hilfeanweisung vom windows-shell, jedoch meckert das programm jedesmal die variable an, das die nicht verarbeitbar wäre...

sinn ist, die letze PDf datei aus einem verzeichnis in eine variable zu pressen und dann das ".pdf" abzuschneiden. Dann soll die zählschleife von einem start wert immer 50 aufzählen bis der endwert erreicht ist.

Jemand eine idee warum die zählschleife nicht geht?
@ECHO OFF
Setlocal EnableExtensions 
setlocal EnableDelayedExpansion

for %%i in (*.pdf) do (
set "datei=%%i"  
)
IF %datei:~-3,1% EQU p (
  		SET "datei=%datei:~-4%"  
  	)

for /L %j in (82325003, 50, !datei!) do (
set "datei2=!datei2!.pdf" >> "123.txt"  
)

pause

Content-Key: 66675

Url: https://administrator.de/contentid/66675

Printed on: April 19, 2024 at 21:04 o'clock

Member: TuXHunt3R
TuXHunt3R Aug 21, 2007 at 08:16:01 (UTC)
Goto Top
So auf den ersten Blick würde ich sagen, dass du die Variable "Datei" nicht korrekt angegeben hast.
Statt:

for /L %j in (82325003, 50, !datei!) do (

for /L %j in (82325003, 50, %datei%) do (
Member: bastla
bastla Aug 21, 2007 at 08:48:23 (UTC)
Goto Top
Hallo ooAlbert!

Wenn Dein Ziel zunächst sein sollte, aus allen pdf-Dateien des Verzeichnisses diejenige mit der höchsten Nummer herauszufiltern und deren Nummer in die Variable %datei% zu schreiben, könntest Du etwa so vorgehen (ich setze voraus, dass alle pdf-Dateien tatsächlich eine Nummer als Namen haben):
for /f %%i in ('dir /b /on *.pdf') do set /a datei=%%~ni  
Die Zählschleife könnte dann so aussehen:
for /L %%j in (82325003, 50, %datei%) do echo %%j
Was diese Schleife bewirken soll, ist mir allerdings nicht klar - vielleicht beschreibst Du die eigentliche Zielsetzung einmal etwas genauer ...

Grüße
bastla
Member: ooAlbert
ooAlbert Aug 21, 2007 at 09:56:31 (UTC)
Goto Top
nun das ergebnis soll dann in eine TXT geschrieben werden damit ein anderes script das dann an einen FTP-server vermittelt...

ich hat nämlich das problem, das aus unerklärlichen gründen immer die 50ste datei beim download nicht mitkam und deshalb soll die jetzt nachträglich geladen werden ... Das FTP-Protokoll ist leider etwas beschränkt als das man das hätte direkt über den FTP abgewickelt.
Member: ooAlbert
ooAlbert Aug 21, 2007 at 10:03:40 (UTC)
Goto Top
kann man eigentlioch eine if-anweisung mit logik verknüpfen, so wie: wenn A gleich b und C ungleich d dann anweisung ?
Member: bastla
bastla Aug 21, 2007 at 10:06:10 (UTC)
Goto Top
Hallo ooAlbert!

Dann als Batch am Stück etwa so:
@echo off & setlocal
for /f %%i in ('dir /b /on *.pdf') do set /a datei=%%~ni  
for /L %%j in (82325003, 50, %datei%) do echo %%j.pdf>>123.txt

Grüße
bastla
Member: bastla
bastla Aug 21, 2007 at 10:09:02 (UTC)
Goto Top
kann man eigentlioch eine if-anweisung mit logik verknüpfen, so wie: wenn A gleich b und C ungleich d dann anweisung ?
Neues Thema?

if "%A%" eq "%b%" if "%C%" neq "%d%" anweisung  

Grüße
bastla