存储当前目录,然后再使用它

时间:2016-06-03 06:47:39

标签: windows batch-file

所以我想创建一个批处理,将其当前位置(路径)写入位于不同目录(C :)中的文件。

我不希望它被硬编码,所以我在这些日子里尝试了很多方法,但没有任何效果。我认为将cd命令存储在变量中可能会解决问题。 这是我的一次尝试:

setlocal enabledelayedexpansion
for /f "delims=" %%i in ('cd') do set installation_path=%%i
(
    echo [General]
    echo bin: %installation_path%\bin
    echo sys: %installation_path%\sys
    echo.
    ::etc
)>"C:\file_where_I_want_to_write"

而不是在我的" file_where_I_want_to_write"中显示我显示的批处理目录

  

C:\窗口\ system32

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如果我正确理解你的目标,就不需要执行任何操作。 %cd%将为您提供当前目录。 %~dp0将为您提供包含批处理文件的目录。

echo %cd% > file_where_I_want_to_write

根据评论问题更新。如果您不想直接使用%~dp0,请将其指定给其他人。使用setlocalendlocal将作业限制在批处理脚本中。

@echo off
setlocal
set batchdir=%~dp0
echo [General] > file_where_I_want_to_write
echo bin: %batchdir%bin >> file_where_I_want_to_write
echo sys: %batchdir%sys >> file_where_I_want_to_write
echo. >> file_where_I_want_to_write
endlocal

请注意,%~dp0包含反斜杠。

答案 1 :(得分:0)

命令cd typed current path。您可以使用重定向> (写)或>> (附加)。使用:

cd > c:\your_path\file_where_I_want_to_write