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

Batch Probleme Ausrufezeichen werden nicht interpretiert

Frage Entwicklung Batch & Shell

Mitglied: -Kidow-

-Kidow- (Level 1) - Jetzt verbinden

10.10.2010 um 16:05 Uhr, 9457 Aufrufe, 8 Kommentare

Hallo ihr,

ich hab folgendes Problem mit einer Batch-Datei.

Hier mal mein Code:
@echo off
Setlocal EnableDelayedExpansion
for %%i in (11 25) do (
mvn site
md %%i
SET dir=%cd%
for /F %%j in ('dir /s /b "coverage.xml"') do (
SET sbasedir=%%j
SET sbasedir=!sbasedir:~0,-36!
SET sbasedir=!!sbasedir:%dir%=!!
SET sbasedir=!sbasedir:~1!
ren "%%j" %%i_!sbasedir!.xml
for /F %%t in ('dir /s /b "%%i_!sbasedir!.xml"') do (
move %%t %%i
)
)
)

Die .bat soll alle Dateien suchen, die coverage.xml heißen, diese nach ihrem Projekt-Ordner benennen und in ihren Versions-Ordner(hier die 11 und die 25) schieben. Ich hab jetzt das Problem, dass alles super läuft sobald ich mvn site rausnehme . Wenn mvn site allerdings drin steht, kommts mir so vor, als würden die ! nicht mehr interpretiert werden. Hatte einer vielleicht ein ähnliches Problem und kann mir helfen?

Ich verwende den Maven Site Befehl, um passend zum Projekt eine Projektübersicht(also hier die coverage.xml) zu erstellen.

Ich dank euch schonmal im vorraus!
Mitglied: 60730
10.10.2010 um 20:14 Uhr
Moin,

3 Dinge:

  • verwende bitte Code Blöcke
  • bei Problembatchen kein führendes @echo off
  • bei EnableDelayedExpansion keine %% sondern !!

Wenn mvn site allerdings drin steht, kommts mir so vor
Da mir mvn site genausowenig sagt, wie jedem anderen außer dir - solltest du dir deren Inhalt genauer ansehen.

Gruß
Bitte warten ..
Mitglied: bastla
10.10.2010 um 20:22 Uhr
Hallo -Kidow- und willkommen im Forum!

Das "!"-Problem ist der Preis, den Du für die Verwendung von "delayedExpansion" zahlen musst - daher ist oft eine Vermeidungsstrategie vorteilhafter, zB (ungestest):
01.
@echo on & Setlocal 
02.
for %%i in (11 25) do ( 
03.
    mvn site 
04.
    md "%%i" 
05.
    for /F %%j in ('dir /s /b "coverage.xml"') do set "sbasedir=%%j" & call :ProcessLine "%%i" "%%j" 
06.
07.
goto :eof 
08.
 
09.
:ProcessLine     
10.
SET "sbasedir=sbasedir:~0,-36" 
11.
call SET "sbasedir=%%sbasedir:%cd%=%%" 
12.
SET "sbasedir=%sbasedir:~1%" 
13.
ren %2 "%~1_%sbasedir%.xml" 
14.
for /F %%t in ('dir /s /b "%1_%sbasedir%.xml"') do move "%%t" %1 
15.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: jeb-the-batcher
10.10.2010 um 21:30 Uhr
* bei EnableDelayedExpansion keine %% sondern !!

Aber wie soll das denn gehen?

01.
@echo off 
02.
setlocal EnableDelayedExpansion 
03.
 
04.
for  %%a IN ("XYZ") DO ( 
05.
  echo per=%%a 
06.
  echo exc=!!a 
07.
)
Wäre schön wenn es funktionieren würde, klappt aber leider nicht (oder ich habe deinen Kommentar nicht verstanden).

Gruß

jeb
Bitte warten ..
Mitglied: jeb-the-batcher
10.10.2010 um 21:36 Uhr
Hallo bastla,

so wie ich Kidow verstehe ist das Problem, das die !var! Auflösung nicht mehr läuft, nicht das verschwinden von Ausrufezeichen in der Ausgabe.

Meiner Ansicht nach ist DelayedExpansion in den meisten Fällen die bessere Wahl, einfach weil die ganzen Sonderzeichen nicht weiter verarbeitet werden.
Es bleibt nur das Problem, irgendwie "problematische" Strings mit "!" und "^" in eine Variable zu bekommen, sobald man nur mit den Variablen arbeiten kann, gibt es das "!"-Problem ja nicht mehr.

Gruß
jeb
Bitte warten ..
Mitglied: bastla
10.10.2010 um 21:44 Uhr
Hallo jeb!
so wie ich Kidow verstehe ist das Problem, das die !var! Auflösung nicht mehr läuft, nicht das verschwinden von Ausrufezeichen in der Ausgabe.
... was bei Nicht-Verwendung der "delayedExpansion" aber eigentlich egal sein sollte (allerdings habe ich tatsächlich nur oberflächlich drübergeschaut und den Batch nicht wirklich nachvollzogen) ...

Grüße
bastla
Bitte warten ..
Mitglied: -Kidow-
11.10.2010 um 12:17 Uhr
Hallo ihr,

erst einmal dickes Dankeschön für die Hilfe! Ich hab es einmal mit dem Beispiel von bastla versucht und bekomme nin leider folgenden Fehler: "Ungültiger Versuch, ein Sprungziel außerhalb einer Batchdatei aufzurufen." Ich kann leider nicht recht was damit anfangen, da die .bat Datei mal wieder ohne den mvn site Befehl super funktioniert. Könntet ihr mir da eventuell nocheinmal weiterhelfen? Google irgendwie schon relativ lange und komm auf keinen grünen Zweig hier!

Um noch kurz zu erklären was Mvn site macht : Maven ist ein Build-Tool und erstellt unteranderem mit mvn site erstellt eine Übersichtsseite(welche Klassen enthalten sind, wer daran gearbeitet hat) zu einem Projekt. Diese Daten benötige ich pro Version des Projekts.


Danke schoneinmal
Bitte warten ..
Mitglied: -Kidow-
12.10.2010 um 11:46 Uhr
Hallo,

es hat geklappt! Hab ein call vor dem mvn site Befehl gesetzt und jetzt funktioniert es. Danke an euch nochmal!
Bitte warten ..
Mitglied: bastla
12.10.2010 um 13:12 Uhr
Hallo -Kidow-!
es hat geklappt!
Das ist erfreulich - und wenn Du erwähnt hättest, dass mit "mvn" ein weiterer Batch aufgerufen wird, hätten wir das vielleicht schon früher hinbekommen ....

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch-Probleme bei Verschlüsselung

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Probleme mit Dateipfaden in for-Schleife (1)

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Winrar entpacken - Probleme bei Pfad (7)

Frage von Concurve zum Thema Batch & Shell ...

Batch & Shell
gelöst Probleme bei der Funktionsweise einer im Hintergrund laufenden Batch (5)

Frage von duderu zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...