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

gelöst Warum kein !-Zeichen möglich?

Mitglied: ET0815

ET0815 (Level 1) - Jetzt verbinden

28.06.2013 um 21:30 Uhr, 1779 Aufrufe, 4 Kommentare, 2 Danke

Hallo alle zusammen,

diesen Programmschnipsel habe ich im Netz gefunden:

01.
@echo off &setlocal 
02.
 
03.
<nul set /p "=Enter your password: " 
04.
call :HInput pw 
05.
echo Input length is %errorlevel% 
06.
setlocal EnableDelayedExpansion 
07.
echo Your password is %pw% 
08.
pause 
09.
goto :eof 
10.
 
11.
 
12.
:HInput [ByRef_VarName] 
13.
:: inspired by Carlos @ www.DosTips.com 
14.
if "%__HI__%" neq "__HI__" ( 
15.
  setlocal DisableDelayedExpansion 
16.
  set "S=" &set "N=0" &set "__HI__=__HI__" 
17.
  for /f %%i in ('"prompt;$h&for %%i in (1) do rem"') do set "BS=%%i" 
18.
19.
set "C=" 
20.
for /f "delims=" %%i in ('2^>nul xcopy /lw "%~f0" "%~f0"') do if not defined C set "C=%%i" 
21.
set "C=%C:~-1%" 
22.
setlocal EnableDelayedExpansion 
23.
if not defined C ( 
24.
  echo( 
25.
  if "%~1"=="" ( 
26.
    echo(!S! 
27.
    endlocal &endlocal &exit /b %N% 
28.
  ) else ( 
29.
    if defined S ( 
30.
      for /f delims^=^ eol^= %%i in ("!S!") do endlocal &endlocal &set "%~1=%%i" &exit /b %N% 
31.
    ) else endlocal &endlocal &set "%~1=" &exit /b 0 
32.
33.
34.
if "!BS!"=="!C!" ( 
35.
  set "C=" 
36.
  if defined S set /a "N -= 1" &set "S=!S:~,-1!" &<nul set /p "=%BS% %BS%" 
37.
) else set /a "N += 1" &<nul set /p "=*" 
38.
if not defined S ( 
39.
  endlocal &set "N=%N%" &set "S=%C%" 
40.
) else for /f delims^=^ eol^= %%i in ("!S!") do endlocal &set "N=%N%" &set "S=%%i%C%" 
41.
goto HInput
Diese Teil habe ich in meine Batch eingefügt und nun kann ich nirgens mehr "!" Zeichen mehr anzeigen lassen. Wo liegt der Fehler?

Gruß
Toni
Mitglied: certifiedit.net
28.06.2013 um 21:44 Uhr
1. Wofür brauchst du das Skript?
2. Warum willst du "!" anzeigen lassen?
3. Wie definierst du "nirgens"?
Bitte warten ..
Mitglied: bastla
28.06.2013, aktualisiert um 22:59 Uhr
Hallo ET0815!

Ändere Zeile 7 auf
echo Your password is !pw!
Zur eigentlichen Frage siehe zB https://www.administrator.de/contentid/166740

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
28.06.2013, aktualisiert um 23:05 Uhr
Hallo ET0815.

Der Code kommt mir doch sehr bekannt vor

Ich vermute ich weiß worauf du hinaus willst.
Zeile 6 schaltet die verzögerte Variablenerweiterung ein. Dies ist nötig um auch Sonderzeichen, wie &<>| in der Variablen pw ohne Nebenwirkungen auszugeben. Ausrufezeichen bekommen so aber einen Sonderstatus, da sie statt Prozentzeichen bei der Variablenerweiterung verwendet werden (solltest du eigentlich in Zeile 7 so nutzen, im ursprünglichen Code steht deshalb auch !pw!).
Einfachste Lösung:
Schalte die verzögerte Variablenerweiterung mit einem
endlocal
wieder aus, sobald du sie nicht mehr benötigst.

Grüße
rubberman
Bitte warten ..
Mitglied: ET0815
06.07.2013 um 18:51 Uhr
alles klar, danke rubberman! jetzt funktionierts

Gruß
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
Keine Remoteverbindung möglich
Frage von JoezweiWindows Netzwerk16 Kommentare

Hallo zusammen, also es ist so, dass ich einen Server 2012 nicht von außen per Remote erreichen kann. Dieses ...

Server
Welches VPN ist Möglich?
Frage von BiGnoobServer14 Kommentare

Guten Abend kleine frage an euch, ich bräuchte für meine Freundin eine Möglichkeit ihren SMB share bei ihr zuhause ...

Netzwerke
Mögliche Hosts
gelöst Frage von BaumKoNetzwerke4 Kommentare

Hallo, beim Bearbeiten einer Subnetzaufgabe bin ich auf ein Problem gestoßen. Unter Folgende Hosts sind möglich steht 193.25.22.177-193.25.22.190(siehe Bild). ...

Windows 7
Keine Netzwerkverbindung möglich
Frage von McKayoWindows 75 Kommentare

Guten morgen zusammen, ich habe seit gestern hier ein Notebook liegen an dem ich keine Netzwerkverbindung herstellen kann. Win ...

Neue Wissensbeiträge
Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 4 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 7 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 2 TagenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++33 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Batch & Shell
Powershell: Im AD nach Comutern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell21 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
Frage von Bommi1961Batch & Shell20 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...