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

Eventuelles Hochkomma am Anfang und Ende entfernen

Frage Entwicklung Batch & Shell

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

30.07.2010 um 17:37 Uhr, 3886 Aufrufe, 3 Kommentare

Hallo Zusammen

Ich übergebe an eine Batchdatei 2 Pfade wenn der zweite Parameter eine leerzeichen enthält muß der ja mit " " eingeschlossen sein . Damit deie Batchdatei nicht 3 Parameter erkennt.

Jetzt haben ich zwei if abfragen geschrieben wenn am Anfang ein " dann entferne es und wenn an ende ein " dann entferne es..

01.
  
02.
 
03.
set "CO_HOME=%2" 
04.
echo CO_HOME=#%CO_HOME%# 
05.
set "_CO_HOME=" 
06.
set "_CO_HOME=%CO_HOME:~1%" 
07.
echo _CO_HOME=#%_CO_HOME%# 
08.
 
09.
IF "%CO_HOME:~0,1%"==""" ( 
10.
		            set "CO_HOME=%_CO_HOME%" 
11.
12.
 
13.
echo CO_HOME=#%CO_HOME%# 
14.
 
15.
set "_CO_HOME=" 
16.
set "_CO_HOME=%CO_HOME:~0,-1%" 
17.
echo _CO_HOME=#%_CO_HOME%# 
18.
 
19.
IF "%CO_HOME:~-1,1%"==""" (  
20.
     		               set "CO_HOME=%_CO_HOME%" 
21.
22.
 
23.
echo CO_HOME=#%CO_HOME%#


Das funktioniert soweit auch wenn der Übergeben 2 Wert "C:\Programme\Hot up" lautet. habe ich nachher im Programm den Wert C:\Programme\Hot up mit dem ich dann weiterarbeite kann,

Wenn ich aber den 2 Wert mit C:\Programme\Hot-down übergebe also ohne " bekomme ich eine

Syntaxfehler IF "C"==""" (

Wenn ich für die If abfrage
01.
"%CO_HOME:~0,1%"==""" 
mit [] mache also
01.
 [%CO_HOME:~-0,1%] == ["] 
nutze wird zum Schluß der Wert von CO_HOME nicht übernommen und die "" sind noch da.

Wenn ich die
Die Abfrage
01.
 
02.
IF "%CO_HOME:~-1,1%"==""" (  
03.
     		               set "CO_HOME=%_CO_HOME%" 
04.
                       	            )
in eine Zeile schreibe

01.
 
02.
IF "%CO_HOME:~-1,1%"==""" (  set "CO_HOME=%_CO_HOME%" ) 
03.
 
Luft das Progrmamm gar nicht an.

Also im Moment bin ich sehr verwirrt.

Dabei will ich doch nur wenn die Abfragen wenn 2 Paramete z.b. "C:\Program Files\Hallo-du" ist dann mach daraus C:\Program Files\Hallo-du
Wenn der Zweite Paramert ohne "" ist also z.B. C:\Programme\Hallo-du dann lass ihn so. Und mach weiter.

Das Programm funktioniert wenn ich einfach das erste und das letzt Zeichen weg lasse.

Aber da ich nicht mit sicherheut sagen kann das der Aufruf immer mit "" geschieht wollte ich diuese abfragen machen an der ich gerade verzweifle.


Besten dank schon mal im voraus

mycroft
Mitglied: 60730
30.07.2010 um 17:57 Uhr
Moin,

machs doch so:

01.
for /D %%a in (%1,%2) do echo %%~a
Demo:
>c:\script\hochkomma.cmd "zzzz" "hhh"
>for / %a in ("zzzz" "hhh") do echo %~a
>echo zzzz
>echo hhh

Gruß
Bitte warten ..
Mitglied: mycroftone
30.07.2010 um 18:24 Uhr
Boo Der hamer neidisch sein.

Da schreibe ich Zeilen um Zeilen verbringen stunden damit zu und dann

ein Einzeiler.

01.
for /D %%a in (%2) do set ohne-hoch=%%~a
Demo

C:\>test "123" "C:\temp\test"

C:\>for / %a in ("C:\temp\test") do set ohne-hoch=%~a

C:\>set ohne-hoch=C:\temp\test

C:\>echo ohne-hoch=#C:\temp\test#
ohne-hoch=#C:\temp\test#

C:\>test "123" C:\temp\test

C:\>for / %a in (C:\temp\test) do set ohne-hoch=%~a

C:\>set ohne-hoch=C:\temp\test

C:\>echo ohne-hoch=#C:\temp\test#
ohne-hoch=#C:\temp\test#

C:\>

Besten Dank

P.S.

Wenn du mal Zeit hast kannst mir es erklären
Bitte warten ..
Mitglied: Friemler
30.07.2010 um 22:10 Uhr
Hallo microftone,

statt

01.
set "CO_HOME=%2"
musst Du schreiben

01.
set "CO_HOME=%~2"
Die Tilde bei %~2 bewirkt, das Anführungszeichen, mit denen %2 eingeschlossen ist, entfernt werden.

Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Linux Tools
gelöst Mit Linux am ende einer Datei eine Leerzeile einfügen (30)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Windows Update
Windows Update - WSUS und kein Ende (12)

Frage von the-buccaneer zum Thema Windows Update ...

Microsoft
Support Ende von Servern (13)

Frage von HeinrichM zum Thema Microsoft ...

Windows Server
gelöst WSUS - Nicht benötigte Updates entfernen (11)

Frage von leon123 zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

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

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...