我对此非常陌生,并希望得到一些帮助。
我试图在命令行中运行一个程序,但我需要添加一个更改的驱动器号和一个也会更改的部件号。
例:
start "" "U:\ISO\fileTool\file_Update.exe /m:(PARTNUMBER) /t:(DRIVELETTER) /v /l:logfile.text"
程序使用m:后面的内容作为我需要的部件号。 它还使用了T:之后的内容,用于我要复制的驱动器号。 我希望能够选择是否插入v(验证)。 我想选择是否插入l(logfile)。
作为准备工作的一部分,我有一个批处理文件,要求用户提供部件号,驱动器号,是否要验证以及是否需要日志文件。它的输出是一个文本文件,看起来像这样,没有括号中的信息
文本文件输出:
Variable One = 1234 (partnumber)
Variable Two = D (Driveletter)
Variable Three = Y (validate could be N to exclude)
Variable Four = Y (logfile could be N to exclude)
所以我需要的是一种将变量信息插入批处理文件并使用开关运行.exe文件的方法
EX:
start "" "U:\ISO\fileTool\file_Update.exe /m:12345 /t:m /v /l:logfile.txt"
答案 0 :(得分:1)
正如Squashman在评论中已经指出的那样,你不需要文件:
@echo off
set /p "VarOne=Enter Part Number: "
set /p "VarTwo=Enter Drive Letter: "
set /p "VarThree=Enter Validate? Y/N: "
if /i "%VarThree%"=="Y" (set "VarThree=/v") else (set "VarThree=")
set /p "VarFour=Use Log File? Y/N: "
if /i "%VarFour%"=="Y" (set "VarFour=/l:logfile.txt") else (set "VarFour=")
start "" "U:\ISO\fileTool\file_Update.exe" /m:%VarOne% /t:%VarTwo% %VarThree% %VarFour%
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
CALL :run %*
:loop
SET "input="
SET /p "input=Part[,Drive[,Verify[,Logfile]]]"
IF DEFINED input CALL :run %input%&GOTO loop
GOTO :EOF
:run
FOR %%a IN (logfile verifyp) DO SET "%%a="
IF "%~4" neq "" SET "logfile=/l:%~4"
IF /i "%~3" equ "Y" SET "verifyp=/v"
IF /i "%~2" equ "" (SET "drive=D") ELSE (SET "drive=%~2")
ECHO(start "" "U:\ISO\fileTool\file_Update.exe /m:%~1 /t:%drive% %verifyp% %logfile%"
GOTO :EOF
这将允许您以 thisbatch 1234运行myogfilename
或仅仅作为 thisbatch 1234
默认为驱动D
,没有验证且没有日志文件。
我误读了您希望y
指定logfile = logfile.txt
IF /i "%~4" equ "y" SET "logfile=/l:logfile.txt"
在run
子程序中的“〜4”处理的plac中,如果最后一个参数为y,则将其转换为“use logfile.txt
”