Ich habe recherchiert und erfolglos versucht, den aktuellen Verzeichnisnamen in eine Variable zu bekommen, um beispielsweise %CurrDirNam%
eine Textdatei mit demselben Ordnernamen zu erstellen. Das dritte Beispiel unten funktioniert, überschreibt jedoch beim Ausführen die vorhandene Datei und ihren Inhalt. Daher habe ich die unterste Zeile geändert, um die Existenz der Datei zu prüfen. Set DirName=%cd% For %%A in ("%dirname%") do ( Set Name=%%~nxA ) IF NOT EXIST %Name%.txt Echo %Dirname% > %DirName%\%Name%.txt Rem ---OOPS, entschuldige, ich weiß nicht, wie ich den Code mit CRLF und Einrückungen neu formatieren kann. Ich bin neu hier ...
Antwort1
Wenn Sie dies ausführen
Set DirName=%cd%
Echo %Dirname% > %DirName%.txt
ausC:\Tempwird es erweitert auf
Set DirName=C:\Temp
Echo C:\Temp > C:\Temp.txt
Dies schlägt fehl, wenn Sie keine Schreibberechtigung für C:\ haben und erklärt dasZugriff abgelehntNachricht, die Sie erhalten.
Wenn Sie eine Datei im Verzeichnis C:\Temp erstellen möchten, verwenden Sie Folgendes:
Set DirName=%cd%
Echo %Dirname% > %DirName%\test.txt
Wenn der Name der Datei mit dem Verzeichnisnamen übereinstimmen muss, verwenden Sie diesen Trick:
Set DirName=%cd%
For %%A in ("%dirname%") do (
Set Name=%%~nxA
)
Echo %Dirname% > %DirName%\%Name%.txt
Antwort2
Ich habe dies auf meinem Windows 10-System getestet und es hat problemlos funktioniert.
>path.txt echo %cd%
Ich habe dies in einem Batch-Skript ausgeführt, während ich mich in dem Verzeichnis befand, dessen Pfad ich haben wollte. In meinem Fall wollte ich nur den Pfad, um daraus eine URL zu erstellen. Ich habe festgestellt, dass durch die Verwendung >url.txt echo %cd:\=/%
auch alle Backslashs berücksichtigt werden, die in der URL Schrägstriche sein mussten, und mir so die Mühe erspart blieb.
Der einzige verbleibende Schritt ist eine kleine Bearbeitung der url.txt-Datei