Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

SET funktioniert in FOR Schleife nicht

Frage Entwicklung Batch & Shell

Mitglied: quba

quba (Level 1) - Jetzt verbinden

26.08.2010 um 15:31 Uhr, 3010 Aufrufe, 6 Kommentare

Hallo zusammen,

ich ich glaube ich stehe auf dem Schlauch
Folgendes:
Ich versuche aus einem Ordner die Datei die dort steht mit einer FOR /F auszulesen und in eine
Variable zu schreiben um diese (Dateiname) danach weiter zu verwenden:

for /f "delims=" %%i in ('dir /b %workpath%') DO @SET pdf=%%i

Mit echo %pdf% kann ich mir anschauen, dass der Dateiname der Variable korrekt zugewiesen wurde.

Führe ich die Batch aus funktioniert alles.

Rufe ich die Batch über die Geplanten Tasks auf funktioniert es nicht.
Der Variable wird kein Wert zugewiesen.

Hat jemand eine Idee?

Danke und Gruß
quba
Mitglied: Biber
26.08.2010 um 15:36 Uhr
Moin Quba,

gib doch mal in der Zeile VOR dem FOR-Geraffel einfach ein:
@echo Batch-durchnudelnder Benutzer: [%username%] und dessen Variable Workdir [%workdir%]
Ab dem Punkt dann stehe ich für verbleibende Fragen zur Verfügung.

Grüße
Biber
Bitte warten ..
Mitglied: quba
26.08.2010 um 15:49 Uhr
Tach auch,

da es in einer neuen Datei, in der nur diese eine Zeile steht funktioniert,
habe ich ein wenig getestet.

Was ich nicht erwähnt habe: Die FOR Schleife ist in einer IF EXIST Schleife
Eigentlich dachte ich dies macht nichts aus, aber wenn ich die FOR außerhalb der IF
laufen lasse, dann tut alles. Innerhalb der IF tut es nicht.
Zumindest nicht über geplante Tasks, wenn ich von Hand aufrufe, dann gehts auch.

Ich versteh das nicht.....

grüße
quba
Bitte warten ..
Mitglied: 60730
26.08.2010 um 16:05 Uhr
Moin,

naja wenn das was nicht exististiert auch nicht existiert, dann findet der if exist auch keinen Grund dich ins innere zu lotsen.

Ich versteh das nicht.....
Ich auch nicht - du willst doch Hilfe, warum dann so schüchtern mit deiner Batch?

Gruß
Bitte warten ..
Mitglied: quba
26.08.2010 um 16:19 Uhr
Doch in die IF Exist springt er rein.

Hier mal ein Auszug mit dem ich Probleme hab


if exist "%workpath%\*.pdf" (
for /f "delims=" %%i in ('dir /b %workpath%') DO @SET pdf=%%i
@echo %pdf% > c:\log.txt
)

Wie erwähnt %pdf% hat keinen Wert zugewiesen.
In der log.txt müsste dann der Dateiname stehen, aber ich sehe nur "ECHO ON" da
ja die Variable wohl leer ist...

LG
Bitte warten ..
Mitglied: Biber
26.08.2010 um 16:47 Uhr
Moin quba,

gestern in einer Frage von jonny83 hatten wir Ähnliches.

Kurzfassung:
  • Vom Wort "IF" bis zum letzten "RundeKlammerZu" ist es EINE Befehlszeile
  • In EINER Befehlszeile werden alle %Variablen% EINMAL aufgelöst ...vor Beginn des erstens Zeichens der Befehlszeile.
  • Abhilfe siehe im Beitrag von jonny83

--> oder aber in Deinem Fall:
Verlege das @echo %pdf% etwas tiefer auf die Zeile NACH der "RundeKlammerZu"-Zeile.

Grüße
Biber
Bitte warten ..
Mitglied: quba
26.08.2010 um 17:04 Uhr
Hey Biber,

man lernt nie aus...
Danke dir der Beitrag bzw. dein Kommentar bei jonny83 hat mir wirklich sehr weiter geholfen.
Des Rätsels Lösung Setlocal EnableDelayedExpansion und die Variable mit !pdf!

Einfach genial!

Danke und einen schönen Tag

quba
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Set-ADUser - Füllen des Felds "Location" funktioniert nicht (2)

Frage von Alex94G zum Thema Batch & Shell ...

Windows Server
gelöst Netzlaufwerk RemoteApp auf Win 2012 R2 Terminalserver funktioniert nicht (12)

Frage von grenzde zum Thema Windows Server ...

Batch & Shell
Wie arbeitet das cmdlet "Set-HPBiosUEFIBootOrder" ? (3)

Frage von MasterBaiter zum Thema Batch & Shell ...

Neue Wissensbeiträge
Microsoft

Restrictor: Profi-Schutz für jedes Window

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

Frage von Hajo2006 zum Thema LAN, WAN, Wireless ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (15)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...