2010-12-28 4 views
2

Мне нужно написать сценарий .bat, который выполняет разные команды, на основе которых он запущен.Сценарий BAT для запуска разных команд на разных машинах

Если он работает на машине под названием «анализ» он должен работать:

mv *.pdf D:\Export\Worksheet 
mv *.csv D:\Export\Statistics 

В противном случае он должен работать:

mv *.pdf C:\Export\Worksheet 
mv *.csv C:\Export\Statistics 

Любые указатели в правильном направлении будут оценены.

ответ

2

Переменная COMPUTERNAME среда имеет то, что вы ищете.

Что-то вроде следующего должно помочь вам:

if /i "%COMPUTERNAME%" == "analysis" (
    mv *.pdf D:\Export\Worksheet 
    mv *.csv D:\Export\Statistics 
) else (
    mv *.pdf C:\Export\Worksheet 
    mv *.csv C:\Export\Statistics 
) 
1

Вы хотите изучить переменную окружения COMPUTERNAME.
Начать с

echo %COMPUTERNAME% 

В принципе, я думаю, что вы хотите:

if %COMPUTERNAME% == analysis .... 
0

Вы можете использовать% COMPUTERNAME%, как другие указали. Возможно, вы захотите сделать свой скрипт более понятным, указав локальную переменную, содержащую путь, который изменяется между машинами, а затем используйте это, чтобы избежать повторения.

0

Я обычно использую что-то вроде:

::Common settings 
SET X=.... 
.... 

GOTO %COMPUTERNAME% 

:COMPUTER1 
::Commands for #1 
.... 
GOTO :EOF 

:COMPUTER2 
::Commands for #2 
.... 
GOTO :EOF 
Смежные вопросы