Tenho pesquisado e tentado, sem sucesso, colocar o nome do diretório atual em uma variável, como %CurrDirNam%
para criar um arquivo de texto com o mesmo nome de pasta, algo que o terceiro exemplo abaixo funciona, porém, quando executado, ele sobrescreve o arquivo existente e seu conteúdo, então modifiquei a linha inferior para verificar a existência do arquivo. Set DirName=%cd% For %%A in ("%dirname%") faça ( Set Name=%%~nxA ) SE NÃO EXISTIR %Name%.txt Echo %Dirname% > %DirName%\%Name%.txt Rem ---OOPS, desculpe, não sei como reformatar o código com CRLF e recuos. Sou novo nisso...
Responder1
Se você executar isso
Set DirName=%cd%
Echo %Dirname% > %DirName%.txt
deC:\Temp, ele se expandirá para
Set DirName=C:\Temp
Echo C:\Temp > C:\Temp.txt
Isso falhará se você não tiver permissões de gravação em C:\ e explicaria oAcesso negadomensagem que você recebe.
Se você deseja criar um arquivo em C:\Temp, use algo assim:
Set DirName=%cd%
Echo %Dirname% > %DirName%\test.txt
Se o nome do arquivo corresponder ao nome do diretório, use este truque:
Set DirName=%cd%
For %%A in ("%dirname%") do (
Set Name=%%~nxA
)
Echo %Dirname% > %DirName%\%Name%.txt
Responder2
Testei isso em meu sistema Windows 10 e funcionou sem problemas.
>path.txt echo %cd%
Executei isso em um script em lote enquanto estava no diretório do qual queria o caminho. No meu caso, eu só queria o caminho para criar uma URL a partir dele, descobri que ao usá-lo >url.txt echo %cd:\=/%
também cuida de todas as barras invertidas que precisavam ser barras na URL e me poupou o problema
O único passo que resta é uma pequena edição no arquivo url.txt