He estado investigando e intentando sin éxito obtener el nombre del directorio actual en una variable, como por %CurrDirNam%
ejemplo para crear un archivo de texto con el mismo nombre de carpeta. El tercer ejemplo a continuación funciona, sin embargo, cuando se ejecuta, sobrescribe el archivo existente y su contenido. entonces modifiqué la línea inferior para verificar la existencia del archivo. Establecer DirName=%cd% Para %%A en ("%dirname%") haga (Establecer nombre=%%~nxA) SI NO EXISTE %Name%.txt Echo %Dirname% > %DirName%\%Name%.txt Rem ---Uy, lo siento, no sé cómo volver a formatear el código con CRLF y sangrías. Soy nuevo en esto...
Respuesta1
Si ejecutas esto
Set DirName=%cd%
Echo %Dirname% > %DirName%.txt
deC:\Temperatura, se expandirá a
Set DirName=C:\Temp
Echo C:\Temp > C:\Temp.txt
Esto fallará si no tiene permisos de escritura en C:\ y explicaría elAcceso denegadomensaje que recibes.
Si desea crear un archivo en C:\Temp, use algo como esto:
Set DirName=%cd%
Echo %Dirname% > %DirName%\test.txt
Si el nombre del archivo debe coincidir con el nombre del directorio, utilice este truco:
Set DirName=%cd%
For %%A in ("%dirname%") do (
Set Name=%%~nxA
)
Echo %Dirname% > %DirName%\%Name%.txt
Respuesta2
Probé esto en mi sistema Windows 10 y funcionó sin problemas.
>path.txt echo %cd%
Ejecuté esto en un script por lotes mientras estaba en el directorio cuya ruta quería. En mi caso, solo quería la ruta para crear una URL a partir de ella. Descubrí que al usarla >url.txt echo %cd:\=/%
también se encarga de todas las barras invertidas que debían ser barras diagonales en la URL y me ahorró el problema.
El único paso que queda es editar un poco el archivo url.txt.