所以我想创建一个批处理,将其当前位置(路径)写入位于不同目录(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
感谢您的帮助!
答案 0 :(得分:0)
如果我正确理解你的目标,就不需要执行任何操作。 %cd%
将为您提供当前目录。 %~dp0
将为您提供包含批处理文件的目录。
echo %cd% > file_where_I_want_to_write
根据评论问题更新。如果您不想直接使用%~dp0
,请将其指定给其他人。使用setlocal
和endlocal
将作业限制在批处理脚本中。
@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