File 将批处理文件路径保存到本地硬盘

File 将批处理文件路径保存到本地硬盘,file,batch-file,File,Batch File,我有一个批处理文件,它在执行自解压文件时运行 必须将自解压文件复制到硬盘上的特定目录 在批处理文件中,会询问用户路径在哪里(如果路径不在默认位置) 批处理文件的一部分: @ECHO OFF IF EXIST "C:\Program Files\program\program.exe". ( set PROGRAMPATH=C:\Program Files\ ) ELSE ( echo Program folder was not found. Please enter t

我有一个批处理文件,它在执行自解压文件时运行

必须将自解压文件复制到硬盘上的特定目录

在批处理文件中,会询问用户路径在哪里(如果路径不在默认位置)

批处理文件的一部分:

@ECHO OFF

IF EXIST "C:\Program Files\program\program.exe". (

    set PROGRAMPATH=C:\Program Files\

) ELSE (

    echo Program folder was not found. Please enter the path for Program

    set /p PROGRAMPATH=Path:
)

echo Copying data to "%PROGRAMPATH%"...


copy /Y "*.txt" "%PROGRAMPATH%"
现在回答我的问题


如果用户随后输入新路径,是否可以保存该路径。因此,当他再次执行自解压文件时,它可能会记住新路径?

您可以通过执行以下操作将路径保存到%USERPROFILE%下的某个文件

  echo %PROGRAMPATH% > "%USERPROFILE%\AppData\Local\progpath.txt"
然后通过这样做来阅读

  set /p PROGRAMPATH=<"%USERPROFILE%\AppData\Local\progpath.txt"

set/p PROGRAMPATH=Hi-Ghostrider,谢谢,看起来它可以完成这个任务。但是你能告诉我是怎么排的吗?它对我不起作用,所以可能我在错误的位置插入了行。嗯,它很好地将路径写入progpath.txt,但它从未使用它。它总是向我询问程序路径确保您使用的是内置的Windows echo(而不是cygwin或类似软件附带的echo.exe)。它在Windows7上对我有效。YMMV我刚刚注意到一个小问题。如果路径中有空格,则不会向progpath.txt写入任何内容。如果路径中没有空间,它可以正常工作。你知道怎么解决吗o) 您知道有一个名为
%ProgramFiles%
的环境变量,它使您不必对路径进行硬编码?好的,但我似乎遇到了一个问题,因为路径中有一个“&”符号。下面是路径:C:\Program files\Prog&sample\I尝试用引号保存文本文件的路径,但也没有帮助
@ECHO OFF

set PROGRAMPATH=C:\Program Files\

IF EXIST "%USERPROFILE%\AppData\Local\progpath.txt". (
    set /p PROGRAMPATH=<%USERPROFILE%\AppData\Local\progpath.txt
)

IF NOT EXIST "%PROGRAMPATH%\program.exe". (
    echo Program folder was not found. Please enter the path for Program
    set /p PROGRAMPATH=Path:
)

echo %PROGRAMPATH%>"%USERPROFILE%\AppData\Local\progpath.txt"

echo Copying data to "%PROGRAMPATH%"...
copy /Y "*.txt" "%PROGRAMPATH%"