Batch file 批处理文件,为旧安装程序创建应答文件
我在脚本中使用“移动”时遇到问题。。。 我正在为一个旧的安装程序制作一个应答文件,但我无法让移动实际工作,它一直说路径找不到,有什么想法吗?我已经为此奋斗了一段时间,我想我已经到了需要别人来看看的地步Batch file 批处理文件,为旧安装程序创建应答文件,batch-file,cmd,Batch File,Cmd,我在脚本中使用“移动”时遇到问题。。。 我正在为一个旧的安装程序制作一个应答文件,但我无法让移动实际工作,它一直说路径找不到,有什么想法吗?我已经为此奋斗了一段时间,我想我已经到了需要别人来看看的地步 @echo off set /p exeLoc=Drop .EXE here: REM removing quotes set exeLoc=%exeLoc:"=% REM stripping filename from path for %%i in (%exeLoc%) do set ex
@echo off
set /p exeLoc=Drop .EXE here:
REM removing quotes
set exeLoc=%exeLoc:"=%
REM stripping filename from path
for %%i in (%exeLoc%) do set exeLoc=%%~dpi
REM setting exeLoc
set exePath=%exeLoc%
set /p fileName=Name of .ISS file to save:
REM identifies if the filename contains the proper suffix (.iss)
if x%fileName:.iss=%==x%fileName% set fileName=%fileName%.iss
cls
echo.%exePath%
echo.%fileName%
echo.
echo.Please wait, this may take some time...
verify >nul
REM creates record of install
%exeLoc% -r
echo.
set moveDir=%exePath%\%fileName%
set fromDir=C:\Windows\setup.iss
verify >nul
move /Y %fromDir% %fileName%
echo.
IF '%ERRORLEVEL%'=='0' echo.Answer file moved to& echo.%moveDir%
IF NOT '%ERRORLEVEL%'=='0' echo.There as an issue moving& echo.%fromDir%& echo.to& echo.%moveDir%
pause
我想我能帮上忙 我曾经遇到过一个与您所经历的类似的问题—似乎您需要重新安排如何处理第一个变量 我看到您首先收集.exe的完整位置+文件名,然后删除引号,但我认为这就是问题所在。请先尝试您的“for%%i” 当我测试你的脚本时,我在它的结尾处得到了相同的错误(我删除了你的%exeLoc%-r,因为没有必要找到你的错误)。问题是,出于某种原因,它给了我重复的路径。我将我的位置埋在大约5个文件夹深的文件夹中,并在带有空格和数字的文件夹中尝试重新创建最脏的结构(C:\Test\first\2nd Folder\2013)。我还认为将目录更改为我试图写入的位置是合适的。我不确定这是否必要,但我发现这是一个很好的做法 这就是我最后不得不将第一个变量函数更改为:
set /p exeLoc=Location of .EXE:
set exePath=%exeLoc%
for %%i in (%exePath%) do set exePath=%%~dpi
set exePath=%exePath:"=%
cd %exePath%
全文如下:
@echo off
set /p exeLoc=Location of .EXE:
set exePath=%exeLoc%
for %%i in (%exePath%) do set exePath=%%~dpi
set exePath=%exePath:"=%
cd %exePath%
set /p fileName=Name of .ISS file to save:
if x%fileName:.iss=%==x%fileName% set fileName=%fileName%.iss
cls
echo.%exePath%
echo.%fileName%
echo.
echo.Please wait, this may take some time...
verify >nul
%exeLoc% -r
echo.
set moveDir=%exePath%\%fileName%
set fromDir=C:\Windows\setup.iss
verify >nul
move /Y %fromDir% %fileName%
echo.
IF '%ERRORLEVEL%'=='0' echo.Answer file moved to& echo.%moveDir%
IF NOT '%ERRORLEVEL%'=='0' echo.There as an issue moving& echo.%fromDir%& echo.to& echo.%moveDir%
pause
我想我能帮上忙 我曾经遇到过一个与您所经历的类似的问题—似乎您需要重新安排如何处理第一个变量 我看到您首先收集.exe的完整位置+文件名,然后删除引号,但我认为这就是问题所在。请先尝试您的“for%%i” 当我测试你的脚本时,我在它的结尾处得到了相同的错误(我删除了你的%exeLoc%-r,因为没有必要找到你的错误)。问题是,出于某种原因,它给了我重复的路径。我将我的位置埋在大约5个文件夹深的文件夹中,并在带有空格和数字的文件夹中尝试重新创建最脏的结构(C:\Test\first\2nd Folder\2013)。我还认为将目录更改为我试图写入的位置是合适的。我不确定这是否必要,但我发现这是一个很好的做法 这就是我最后不得不将第一个变量函数更改为:
set /p exeLoc=Location of .EXE:
set exePath=%exeLoc%
for %%i in (%exePath%) do set exePath=%%~dpi
set exePath=%exePath:"=%
cd %exePath%
全文如下:
@echo off
set /p exeLoc=Location of .EXE:
set exePath=%exeLoc%
for %%i in (%exePath%) do set exePath=%%~dpi
set exePath=%exePath:"=%
cd %exePath%
set /p fileName=Name of .ISS file to save:
if x%fileName:.iss=%==x%fileName% set fileName=%fileName%.iss
cls
echo.%exePath%
echo.%fileName%
echo.
echo.Please wait, this may take some time...
verify >nul
%exeLoc% -r
echo.
set moveDir=%exePath%\%fileName%
set fromDir=C:\Windows\setup.iss
verify >nul
move /Y %fromDir% %fileName%
echo.
IF '%ERRORLEVEL%'=='0' echo.Answer file moved to& echo.%moveDir%
IF NOT '%ERRORLEVEL%'=='0' echo.There as an issue moving& echo.%fromDir%& echo.to& echo.%moveDir%
pause
您是否检查了
%exePath%
的内容,以确认它是存在于指定驱动器上的文件夹,并且是目录而不是文件?C:\Windows\setup.iss是否存在?是否打算将“%fromDir%”移动到y%moveDir%
而不是移动到%fileName%
?添加引号有帮助吗?@Tim Good catch,我本来也是这么做的,但被转移了:)您是否检查了%exePath%
的内容以确认它是指定驱动器上存在的文件夹,并且它是目录,而不是文件?C:\Windows\setup.iss
是否存在?您是否打算让移动/y“%fromDir%”%moveDir%
而不是移动到%fileName%
?添加引号是否有帮助?@Tim很好,我走的是同一条路,但走到了另一边:)