WIndows 7 命令行输入

WIndows 7 命令行输入

我的文件服务器上有一个驱动程序文件夹。我正在编写一个命令行脚本,该脚本将提示用户输入计算机型号。然后脚本将使用该输入复制正确的文件夹。

这是我的脚本

set /p model="Enter Model Number"

mkdir c:\j2Global\%model%

xcopy /s /e /y "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model%" "C:\j2Global\%model%\"

pause

我想知道的是是否可以在输入前添加文本。

例如,驱动程序文件夹名为 Optiplex 9010 或 Latitude E5440,因此当前用户必须输入 Optiplex 或 Latitude。

有没有办法可以改变文件夹路径,以便如果用户输入 9010,它就会抓取 Optiplex 9010 文件夹?

我想我要做的是将文件夹路径“\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model%”更改为“\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops*%model%”之类的路径

答案1

鉴于您只有 2 个可能的选择,最简单的方法是简单地验证文件夹是否存在,并在两种情况下都尝试。如果存在,它会复制文件。这是脚本:

set /p model="Enter model number"
set "model1=OptiPlex %model%"
set "model2=Latitude %model%"

if exists "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model1%" (
     :: enter commands for OptiPlex below this line

)

if exists "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model2%" (
     :: enter commands for Latitude below this line

)

答案2

我想知道是否可以在输入前添加文本。

以下是将文本添加到变量的示例:

set /p model="Enter Model Number"
set model=OptiPlex %model%

用户输入9010,它会在其前面添加“Optiplex”,并将新值(返回)分配给“模型”,因此最终“模型”现在的值为OptiPlex 9010

如何使用它来选择所需的文件夹是另一回事,而且实际上应该是它自己的单独问题。

答案3

如果您要使用 if(s) 使其不区分大小写,则可能需要使用 /I 参数。

如果要检查子字符串是否是字符串的一部分,我会使用 FINDSTR 正则表达式。使用正则表达式,您可以制定一组规则。

使用模型+数字创建数组

如果一个值或一些值是数组的一部分,它就会通过。

示例代码:

:开始

分类

set /p model = "输入你的模型"

设置名称1=Optiplex

设置名称2=纬度

设置编号1=9010

设置编号2=E5440

ECHO %名称1%%数字1%

ECHO %名称2%%数字2%

设置/p 模型 1=%名称 1% %数字 1%

设置/p 模型2=%名称2% %数字2%

:标签

rem 添加代码以便更轻松地管理多个设备,例如 FOR LOOP 来加载 20

rem 变量在虚拟变量中逐一出现。

:环形

如果 %model%==%model1%|%name1%|%number1% (

ECHO 您选择 %model1%!

转到:路径

如果 %model%==%model2%|%name2%|%number2% (

ECHO 您选择 %model2%!

转到:路径

) 别的 (

ECHO 错误命令!

转到:开始)

:小路

rem 在这里输入你的 XCOPY 脚本!

相关内容