{title}

Hier ist der Code: wmpshelloff.batCode: if% 0: ~ -5% == "f.bat" (rem Aufheben der Registrierung von WMP SHELL Integration regsvr32/u wmpshell.dll set ren =% 0: on = off%) else (echo norem Registering WMP SHELL Integrationregsvr32 wmpshell.dllset ren =% 0: off = on%)% 0% ren% umbenennen WARUM FUNKTIONIERT ES NICHT?

Was wird angezeigt, wenn Sie den Stapel ausführen? Gibt es Fehlermeldungen? Kannst du sie hier einfügen?

Code: C: dos> wmpshelloff.batC: dos> if wmpshelloff.bat: ~ -5 == "f.bat" (rem Aufheben der Registrierung der WMP SHELL-Integration regsvr32/u wmpshell.dll set ren = wmpshelloff.bat: on = off) else (echo no rem Registrieren der WMP SHELL-Integration regsvr32 wmpshell.dll setze ren = wmpshelloff.bat: off = on) noC: dos> benenne wmpshelloff.bat um wmpshelloff.bat: off = onDie Syntax des Befehls ist falsch.C : dos> Stramge, die variable Erweiterung scheint deaktiviert zu sein, ist jedoch in der Registrierung aktiviert. Funktioniert sie für Sie? Es soll wmpshell.dll abmelden, ich benutze XP SP2 BTW

Der Parameter% 0 enthält nicht die Dateierweiterung, die Ihre if-Anweisung verwackelt. Das folgende Snippet erledigt das, was Sie brauchen, aber der Cmd-Prozessor möchte nicht, dass die ausgeführten Dateien verschwinden. etwas mit Handles und all dem zu tun.Code: setlocal enabledelayedexpansionset pgm =% 0if% 0: ~ -1% == "f" (rem Aufheben der Registrierung von WMP SHELL Integrationregsvr32/u wmpshell.dll set ren =! pgm: on = off! ) else (echo norem Registrieren der WMP SHELL-Integration regsvr32 wmpshell.dllset ren =! pgm: off = on!) benennen Sie% 0.bat% ren% .bat um

Vielen Dank für die Hilfe, die ich mit% 0 aufgegeben habe, denn wenn Sie es von der Benutzeroberfläche aus öffnen, bremst es ab. Ich habe einen einfacheren Weg gefunden, obwohl es Benutzereingaben erfordert. Code: @echo offecho Drücken Sie eine Taste, um: set/p wmpshell = egister oder nregister Wmp-Shell: falls nicht '% wmpshell%' == '' set choice =% choice: ~ 0,1% rem Registrierung der WMP-Shell-Integration aufheben, wenn '% wmpshell%' == 'U' regsvr32/u wmpshell.dll if '% wmpshell%' == 'u' regsvr32/u wmpshell.dll rem Registrieren der WMP-SHELL-Integrationwenn '% wmpshell%' == 'R' regsvr32 wmpshell.dllif '% wmpshell%' == 'r' regsvr32 wmpshell.dll

Ich würde es vorziehen, eine Menge in umgekehrter Reihenfolge anzuzeigen

Ich möchte wissen, wie man eine Zahl mit Batch-Datei-Programmierung rückwärts anzeigt, z. 20060211 als 11206002Mein Betriebssystem ist WinXP Prothanks

@echo offset number = 20060211set aux =% number% set REV =: LOOP falls "% aux%" == "0" goto END set last_digit =% aux: ~ -1% set REV =% REV %% last_digit% set/A aux =% aux%/10 gehe zu LOOP: ENDecho Die Umkehrung von% number% ist% REV%

Carlos, danke für deine schnelle Antwort, aber ich hätte genauer darauf eingehen sollen. Die Nummer (Datum) wird vom unten aufgeführten Programm generiert und ändert sich natürlich jeden Tag. SDate =% DATE: ~ 10,4 %% DATE: ~ 4,2 %% DATE: ~ 7,2%, aber ich brauche das Datum umgekehrt erzeugt werden, z. instaed von 20060212 Ich möchte es als 21206002Danke angezeigt

Es ist eine einfache Übung, die Zeile zu ersetzen:
Satznummer = 20060211
für: пїЅ пїЅ
set sDate =% DATE: ~ 10,4 %% DATE: ~ 4,2 %% DATE: ~ 7,2%
Hier ist eine mögliche Lösung:
@echo off set sDate =% DATE: ~ 10,4 %% DATE: ~ 4,2 %% DATE: ~ 7,2% echo Date:% sDate% set aux =% sDate% set sDate =: LOOP if "% aux% "==" 0 "goto END set last_digit =% aux: ~ -1% set sDate =% sDate %% last_digit% set/A aux =% aux%/10 goto LOOP: END echo Reverse Date:% sDate%
P.S. Wenn Sie diesen Code kopieren und einfügen, achten Sie auf die Leerzeichen am Ende der Zeilen. du musst sie unterdrücken.

Carlos, das hat bei der letzten Frage perfekt geklappt. Wie würde ich dieses umgekehrte Ergebnis nehmen und durch die Zahl 4421 dividieren und dann das Ergebnis anzeigen, sodass die ersten 4 Nachkommastellen angezeigt werden? Was würden Sie als gutes Tutorial für das Lernen vorschlagen? Diese Art der Programmierung nochmals vielen Dank für Ihre Hilfe

MS-DOS hat keine Dezimalzahlen, Sie können das folgende tun:
@echo off set sDate = 31216002 <Ersetze diese Zeile. set/A integer =% sDate%/4421 set/A rest = (% sDate% - 4421integer)% 4421 set/A fracc = 10000remainder/4421 set sol =% integer%.% fracc% echo Division mit vier Dezimalstellen:% sol %
Sorry, ich komme aus Spanien und kenne hier keine Warenbücher von MS-DOS (ich weiß nicht ob in deinem Land.) Vielleicht ist das beste Buch die Dokumentation: SET /? Und ein bisschen Mathematik zu wissen Die verwendete Formel im Quotienten: D | dr cis: D = dc + r

Carlos, nochmals vielen Dank für deine großartige Hilfe, dies ist das, was ich bisher habe @ echo off set sDate =% DATE: ~ 10,4 %% DATE: ~ 4,2 %% DATE: ~ 7,2% set aux =% sDate% set sDate =: LOOP wenn "% aux%" == "0" gehe zu END set last_digit =% aux: ~ -1% set sDate =% sDate %% last_digit% set/A aux =% aux%/10 goto LOOP: ENDEcho% sDate% set/Eine Ganzzahl =% sDate%/4421 set/Ein Rest = (% sDate% - 4421integer)% 4421 set/Ein Fehler = 10000remainder/4421 set sol =% integer%.% Fracc% echo Division mit vier Dezimalstellen:% sol% Wenn ich dies ausführe, erhalte ich die Antwort 7058.5044, die korrekt ist, aber alles, was ich brauche, sind die ersten 4 Stellen nach dem Dezimalpunkt (5044), die angezeigt werden sollen. Ich erhalte auch eine fehlende Bedienermeldung, wenn das oben genannte ausgeführt wird

Beliebte Beiträge