1

У меня есть папка драйверов на моем файловом сервере. Я пишу сценарий командной строки, который предложит пользователю ввести номер модели компьютера. сценарий затем использует этот ввод для копирования в нужную папку.

Это мой сценарий

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%"

3 ответа3

2

Учитывая, что у вас есть только 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

)
1

Что мне интересно, так это то, можно ли добавить текст для ввода.

Вот пример добавления текста в переменную:

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

Пользователь вводит 9010 , он добавляет к нему "Optiplex" и назначает новое значение (назад) "модели", поэтому в конце "модель" теперь имеет значение OptiPlex 9010 .

То, как вы используете это, чтобы выбрать, какую папку вы хотите, - это отдельная история, и на самом деле это должен быть отдельный вопрос.

0

Возможно, вы захотите использовать аргумент /I, если будете использовать if(s), чтобы сделать его нечувствительным к регистру.

Я бы использовал регулярное выражение FINDSTR, если бы проверял, является ли подстрока частью строки. С помощью регулярных выражений вы можете составить набор правил.

Создать массив с моделью + номер

Если значение или некоторые значения являются частью массива, оно пройдет.

Пример кода:

:Начните

ЦБС

set /p model = "Введите вашу модель"

установить имя1 = Optiplex

установить имя2 = широта

установить число 1 = 9010

установить число 2 = E5440

ECHO% name1%% number1%

ECHO% name2%% number2%

set /p model1 =% name1%% number1%

set /p model2 =% name2%% number2%

:этикетка

rem Добавьте код для более удобного управления несколькими устройствами, например FOR LOOP для загрузки 20

Переменные rem одна за другой в фиктивных переменных.

: петля

IF% model% ==% model1% |% name1% |% number1% (

ЭХО Вы выбираете% model1%!

goto: путь

)

IF% model% ==% model2% |% name2% |% number2% (

ЭХО Вы выбираете% model2%!

goto: путь

) ELSE (

ЭХО Неверное командование!

перейти к началу

:дорожка

rem Введите ваш скрипт XCOPY здесь!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .