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

Usereingabe in Batchjob mit Sonderzeichen

Frage Entwicklung Batch & Shell

Mitglied: HisDudeness

HisDudeness (Level 1) - Jetzt verbinden

24.06.2008, aktualisiert 30.06.2008, 5558 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
Windows 7
gelöst Mehrere Dateien in Windows umbenennen mit Batchjob (4)

Frage von Jeduja zum Thema Windows 7 ...

Batch & Shell
Batchjob Ping Abfrage fehlerhaft (2)

Frage von LukiDensi zum Thema Batch & Shell ...

Microsoft Office
Sonderzeichen bei Terminen - Office 2016

Frage von Martinaaa zum Thema Microsoft Office ...

Batch & Shell
gelöst Sonderzeichen Fehler aus Textdatei vermeiden (16)

Frage von Peter32 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Netzwerkfehler bei HyperV - Host

(1)

Anleitung von Scrises zum Thema Windows Server ...

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 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

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

Windows 7
Bluesreens unternehmensweit (21)

Frage von SYS64738 zum Thema Windows 7 ...