Für Befehlszeile Gebrauch:
echo %file^name:^&=^^^&% | ...
Innerhalb einer Batch-Datei
echo %%filename:^&=^^^&%% | ...
Wie funktioniert es?
Wenn eine Pipe zwei neue cmd.exe-Instanzen erstellt, wird die echo ...
zweimal analysiert.
Der Trick ist, den Dateinamen nur in der zweiten Erweiterung zu erweitern.
Und dann zu erweitern und ersetzen Sie die &
mit ^&
, um Probleme mit der &
zu vermeiden.
Der Caret wird verwendet, um dem kaufmännischen Und-Zeichen zu entgehen und wird selbst entfernt. In der zweiten Erweiterung sieht der Parser nur echo %filename:&=^&%
.
Um die Erweiterung in den zweiten Parse-Schritt zu erzwingen, müssen die Prozentzeichen für Batch-Dateien verdoppelt werden.
Von der Befehlszeile aus funktioniert dies nicht, aber ein einfacher Eintrag an einer beliebigen Stelle im Variablennamen funktioniert.
Alternative Lösung:
echo "%filename%" | findstr /i /b /c:^"\"%filename% (%year%)\""
Dies fügt einfach zitiert und verwendet zitiert auch in dem Suchausdruck
entkommen, Doppel Entkommen und zwingt Doppelanalyse, verzögerte Expansion zu entkommen ... manchmal bin ich immer noch überrascht Diese Arbeit kann in der Tat getan werden ... – Stephan
danke! ..meine ersten Schritte beim Erlernen all der Dinge, die Stephan erwähnt hat. – bricktop