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

Usereingabe in Batchjob mit Sonderzeichen

Mitglied: HisDudeness

HisDudeness (Level 1) - Jetzt verbinden

24.06.2008, aktualisiert 30.06.2008, 5572 Aufrufe, 6 Kommentare

Batch Job, Usereingabe, Leerzeichen, Verzeichnis erstellen

Hallo Alle´,

ich habe ein kleines Problem mit der Usereingabe im folgenden Batchjob...
Es funktioniert alles so wie es soll - der User macht seine Eingaben die Verzeichnisstruktur wird erstellt...

Dumm ist allerdings wenn der User eine Eingabe mit Sonderzeichen macht, im speziellen mit einem Leerzeichen im Namen
z.B: Kundenname Loddar Mathäus

Wie kann ich Ihm sagen, dass er auch Leerzeichen lesen soll und diese dann in der Pfaderstellung auch verwendet ???

Ich weiss, dass man bei Variablen mit Leerzeichen "" verwenden muss, wie realisiere ich das bei der Eingabe des Users ?

Gruß Vielen Dank und Frohes Schaffen !!!



@echo off

TITLE generating a customer projekt tree

VERIFY ON

:: enter customers name (Kundenname)

Set /p Kundenname=Bitte geben Sie den Kundennamen ein:

echo.

:: enter project no. (Projektnummer)

SET /p ProjectNumber=Bitte geben Sie die Projektnummer ein:

echo.

:: enter order no. (Auftragsnummer)

SET /p OrderNumber=Bitte geben Sie die Auftragnummer ein:

echo.

:: generating tree structure

mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen
mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Kundenplaene %Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Installationsplaene %Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Schaltplaene

mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Software
mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Software\Geraetesoftware %Kundenname%\%ProjectNumber%\%OrderNumber%\Software\Setups %Kundenname%\%ProjectNumber%\%OrderNumber%\Software\Zusatzsoftware

mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente
mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente\Korrespondenz %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente\Funktionsbeschreibung %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente\Spezifikation %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente\Fremddokumente %Kundenname%\%ProjectNumber%\%OrderNumber%\Dokumente\Projektdokumentation

mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Zusatzinformationen
mkdir %Kundenname%\%ProjectNumber%\%OrderNumber%\Zusatzinformationen\Bilder
Mitglied: Biber
24.06.2008 um 09:12 Uhr
Moin HisDudeness,

setze einfach das ganze MKDIR-Argument in Hochkomma.
Beispiel:
mkdir "%Kundenname%\%ProjectNumber%\%OrderNumber%\Software"

eigentlich ist M$ bei Pfadangaben sehr tolerant bzgl. vorhandener Anführungszeiechen - Du könntest auch jeden/ein paar Einzel-Pfade einzeln in Anfü-zeichen schreiben:
mkdir "%Kundenname%"\%ProjectNumber%\"%OrderNumber%"\Software
(was es natürlich nicht wartbarer macht.)

Die erste Variante sollte also völlig reichen.

Grüße
Biber
Bitte warten ..
Mitglied: HisDudeness
25.06.2008 um 07:33 Uhr
Hi Biber,

danke für die schnelle Antwort !

Ich habe beide Varianten ausprobiert, leider erfolglos...
Leerzeichen im Namen macht er nicht. Setze ich bei der Eingabewe den Namen in "", dann macht er zwei Verzeichnissbäume einen mit dem ersten Namenteil und einen mit dem zweiten Namenteil.

Gibt es andere Möglichkeiten einen Namen einzulesen - ich dachte an Readline, habe aber keine Namen in Dateiform...
Oder muss ich eine Flagge irgendwo ein/ausschalten ???

Ich wäre mit der vorhanden Variante voll zufrieden wenn man einen Namen wie Hans Wurst eingeben könnte.

Gruß und vielen Dank

His Dudeness
Bitte warten ..
Mitglied: Biber
25.06.2008 um 08:42 Uhr
Moin HisDudeness,

sorry, kann ich nicht nachvollziehen.
01.
>set /p a=teil1: 
02.
teil1:level one 
03.
>set /p b=teil2: 
04.
teil2:level two 
05.
 
06.
>set /p c=teil3: 
07.
teil3:level three 
08.
 
09.
>mkdir "%a%\%b%\%c%" 
10.
>dir "%a%\%b%\%c%" 
11.
 Datenträger in Laufwerk D: ist AllesQuark 
12.
 Verzeichnis von D:\temp\level one\level two\level three 
13.
 
14.
25.06.08  08:36    <DIR>          . 
15.
25.06.08  08:36    <DIR>          .. 
16.
               0 Datei(en)              0 Bytes 
17.
               2 Verzeichnis(se), xxx Bytes frei 
18.
>rd "%a%\%b%\%c%" 
19.
 
20.
>mkdir "%a%"\"%b%"\"%c%" 
21.
 
22.
>dir "%a%\%b%\%c%" 
23.
 Datenträger in Laufwerk D: ist AllesQuark 
24.
 
25.
 Verzeichnis von D:\temp\level one\level two\level three 
26.
 
27.
25.06.08  08:40    <DIR>          . 
28.
25.06.08  08:40    <DIR>          .. 
29.
               0 Datei(en)              0 Bytes
-> sind beide angegebenen Varianten.

Grüße
Biber
Bitte warten ..
Mitglied: HisDudeness
26.06.2008 um 07:39 Uhr
Guten Morgen Biber,

das verstehe ich nun mal garnicht... ich habe die "" nun schon nahezu "überall" positioniert - immer das gleiche Ergebniss:

@echo off

TITLE generating a customer projekt tree

VERIFY ON

:: enter customers name (Kundenname)

Set /p Kundenname=Bitte geben Sie den Kundennamen ein:

:: enter project no. (Projektnummer)

SET /p ProjectNumber=Bitte geben Sie die Projektnummer ein:

:: enter order no. (Auftragsnummer)

SET /p OrderNumber=Bitte geben Sie die Auftragnummer ein:

:: generating tree structure

mkdir "%Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen"
mkdir "%Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Kundenplaene" "%Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Installationsplaene" "%Kundenname%\%ProjectNumber%\%OrderNumber%\Zeichnungen\Schaltplaene"

Also quasi wie im ersten Post...

Dieses liefert:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenbträgerbezeichnung ist falsch.
Folgender Fehler trat auf: level one\level two\level three\Software\Geraetesoftware

Die Ordner angelegt hat er selbstverständlich nicht ...
Ist irgendeine Grundeinstellung falsch eventuell ? O.Ä. ?
Kann es beim besten Willen auch nicht verstehen...

Gruß und Danke
Bitte warten ..
Mitglied: Biber
26.06.2008 um 09:55 Uhr
Moin HisDudeness,

hast Du auch für jede MKDIR-Anweisung eine eigene Zeile und legst Du mit jedem MKDIR-Kommando genau ein Verzeichnis an?

So ist es nämlich vorgesehen...

Grüße
Biber
Bitte warten ..
Mitglied: HisDudeness
30.06.2008 um 07:28 Uhr
Hi Biber,

MKDIR wird einmal pro neuem Verzeichnis ausgeführt. Ich hatte es zu erst so geschrieben, dass er mehrere Verzeichnisse mit einer MKDIR Anweisung erstellt. Habe das allerdings verworfen im Rahmen des debuggen des Scripts...

Werde nocheinmal in aller Ruhe drüber schauen
Gruß & Danke

HisDudeness
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchjob Ping Abfrage fehlerhaft
Frage von LukiDensiBatch & Shell2 Kommentare

Moin Leute, ich habe ein kleinen Programm geschrieben, welches abfragt (mit Ping), ob der PC an ist bzw. mit ...

Windows 7

Mehrere Dateien in Windows umbenennen mit Batchjob

gelöst Frage von JedujaWindows 74 Kommentare

Im Windows-Verzeichnis C:\Dateien befinden sich viele verschiedene Dateien. Ein Teil davon soll mittels Batchjob umbenannt werden. Die Verwendung eines ...

Batch & Shell

Erstellen eines GUI in Powershell und das nutzen vom Funktionen mit Usereingabe

gelöst Frage von IT-Guy77Batch & Shell2 Kommentare

Hallo zusammen, folgendes Problem: Ich arbeite derzeit an einem GUI in Powershell für eine kleine Sammlung von Skripten um ...

Batch & Shell

Zeile mit Sonderzeichen in txt einfügen

gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 15 StundenWindows 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 15 StundenSicherheit

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 1 TagDatenschutz8 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 1 TagSicherheit

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

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...