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 Batchprogrammierung, Probleme bei Variable

Mitglied: Snitch0r

Snitch0r (Level 1) - Jetzt verbinden

13.02.2012 um 08:23 Uhr, 3412 Aufrufe, 8 Kommentare

Ich möchte gerne in einer Batchdatei eine kleine Abfrage machen ob eine bestimmte Datei überschrieben werden soll wenn Sie denn schon vorhanden ist.
Hier ist mal ein kleiner Auszug aus dem was ich bisher gemacht habe:

@echo off
set SORTDATE=%date:~0,2%%date:~3,2%%date:~-4%
for /L %%N IN (100000, 1, 130000) DO IF EXIST "\\Peha01\pcdata\%%N.N01" (MKDIR "\\Peha01\pcdata\%%N\%SORTDATE%"
IF EXIST "\\Peha01\pcdata\%%N\%SORTDATE%\Datanorm.001" (echo.
echo.
echo Datei Datanorm.001 bereits vorhanden.
echo Soll die Datei ueberschrieben werden?
set /p var=J/N:
IF %var%==J (Move "\\Peha01\pcdata\%%N.N01" "\\Peha01\pcdata\%%N\%SORTDATE%\Datanorm.001"
Move "\\Peha01\pcdata\%%N.P01" "\\Peha01\pcdata\%%N\%SORTDATE%\Datpreis.001"
)else (
echo %%N ))

das Problem ist wie folgt:
Wenn ich das sowie es da jetzt steht schreibe funktioniert das Programm im vorhinein nicht und wenn ich das so ändere das es so aussieht:

IF "%var%"==J (Move ...

also die Variable in Anführungszeichen schreibe, denn startet das Programm zwar aber er Ignoriert die eingabe.
Also wenn ich "J" eingebe macht er den Befehl trotzdem nicht.
Mitglied: sinsizer
13.02.2012 um 09:50 Uhr
Hallo, warum nutzt du nicht die Abfrage von move?

01.
 move /-Y "c:\datei1" "c:\test\datei1"
Dann kannst du dir die IF Abfrage sparen.

Edit: Nicht richtig gelesen. Glaube "move" ist nicht für Netzlaufwerke gedacht. Würde es daher mal mit "robocopy" und "/MOV" versuchen.

Noch eine kleine Ergänzung zu dem "SORTDATE". Wenn die Punkte weg sollen, kannst du das auch so schreiben: %date:.=%
Bitte warten ..
Mitglied: Lousek
13.02.2012 um 10:12 Uhr
Sali

Irgendeine Fehlermeldung wenn du das Programm ausführst (ohne Anführungszeichen bei %var%)?
Füge mal nach der set-Zeile noch ein echo %var% ein und schau was rauskommt ...

Gruss
lousek
Bitte warten ..
Mitglied: Skyemugen
13.02.2012 um 10:14 Uhr
... [auch ohne Gruß] an den Rest Aloha

Hilfesuchenden ohne Begrüßung & Co. verweise ich ohne weitere Hilfe auf unsere <code></code> Formatierung. Danke!

greetz André
Bitte warten ..
Mitglied: Snitch0r
13.02.2012 um 10:28 Uhr
move /-Y hat wunderbar funktioniert.
danke für den Tipp

würde trotzdem meinen Fehler gerne wissen.
Bitte warten ..
Mitglied: Biber
13.02.2012 um 11:39 Uhr
....angenommen, der werte benutzer gibt an dieser Stelle

echo Soll die Datei ueberschrieben werden?
set /p var=J/N:

... ein "j" oder ein "J" oder ein "X" oder ein "U" ein...

...dann...
...lautet die stumpf eingesetzte Abfrage
IF "%var%"==J (Move ...

-> IF "j"==J (Move ...
-> IF "J"==J (Move ...
-> IF "X"==J (Move ...
-> IF "U"==J (Move ...

In welchen Fällen kann denn jemals das Gleiche auf beiden Seite des doppelten Gleichheitszeichens stehen?
Bitte warten ..
Mitglied: Snitch0r
13.02.2012 um 11:59 Uhr
Problem ist ja das mit:
IF %var%==J (Move..

garnicht erst richtig startet das Programm.
und bei:
IF "%var%"=="J"
Ignoriert er auch die Eingabe.

hoffe habe dich jetzt nicht missverstanden.
Bitte warten ..
Mitglied: 60730
13.02.2012 um 23:02 Uhr
Zitat von Snitch0r:
würde trotzdem meinen Fehler gerne wissen.

  • keine Gruß
  • keine Codetags
  • keine identische Anzahl von geöffneten und geschlossenen Klammern

Wären IHMO mal 3 Punkte, da du aber mit einem führenden @echo off beginnst, passt das dann wieder.
Bitte warten ..
Mitglied: pieh-ejdsch
13.02.2012 um 23:32 Uhr
moin Snitch0r,

Dein Problem ist u.a. der Klammerblock
01.
rem Klammerblock 
02.
 
03.
(  
04.
rem 
05.
set /p var=J/N  
06.
if /i "%var%" equ "j" (echo ...nix passiert ) else  echo der Frische Variablenwert kann nicht in der Klammer benutzt werden 
07.
if defined var echo Nixpassiert trotz gesetzter Variable %var%. 
08.
setlocal enabledelayedexpansion 
09.
rem völlig wurst ob ohne Anführungszeichen ... ist ja verzögert aufgelöst 
10.
if /i !var! equ j (echo Diesmal klappt es mit dem lesen) else echo doch kein j 
11.
endlocal 
12.
rem oder es wird in ein Unterprogramm gesprungen 
13.
call echo "%%var%%" |findstr "j" >nul && echo isn j im call drinnen 
14.
rem oder so eins 
15.
call :submarine "%%var%%" 
16.
rem nun is der hier fertich - der nächste Bitte 
17.
18.
 
19.
pause 
20.
goto :eof 
21.
:submarine 
22.
if /i "%~1" equ "j" echo in der Sub isn j drin 
23.
rem oder auch so 
24.
if /i "%var%" equ "j" echo mit dem zweiten sieht man besser auchn j drin
Hättste mal die Tags <code>
:: Batch inhalt
rem bei Fehler MIT echo ON
rem ....

</code>
benutzt, dann ware es eher ersichtlich gewesen.

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batchprogrammierung - FOR Schleifen - Speichern in Variablen - Ausgabe der Variablen

gelöst Frage von JimStarBatch & Shell6 Kommentare

Guten Tag zusammen, ich habe ein kleines Problem und komme alleine nicht weiter. Folgende Situation: Ich hab ein Batchprogramm ...

Batch & Shell

Mit zusammengesetzter Variable auf andere Variable zugreifen

gelöst Frage von abiberBatch & Shell2 Kommentare

Hallo zusammen, ich möchte in einer Batch Datei über Robocopy auf mehrere Rechner Dateien verteilen. Dazu möchte ich am ...

Batch & Shell

Datei als Variable auslesen und Variable ändern

gelöst Frage von chainsawBatch & Shell1 Kommentar

Hallo Profis, ich komme mit folgendem Problem nicht weiter: In dem Verzeichnis "C:\logfiles" landen bei mir Log-Dateien. Diese Log-Dateien ...

Batch & Shell

Variablen Nutzen welche aus dem Inhalt von Variablen erstellt werden

gelöst Frage von der-blobBatch & Shell4 Kommentare

Hallo Zusammen, der Titel ist zwar nicht direkt aussage kräftig, aber jedoch weis ich nicht wie ich es beschreiben ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 8 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 20 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 22 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 23 StundenMicrosoft14 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server35 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...