подправить bat файл

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by imajo.ati, 7 Feb 2010.

  1. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    Пожалуйста, помогите кто чем может:

    при написании батника по запуску скрипта столкнулся с проблемой:
    в команду start не могу передать имя файла для исполнения по абсолютному пути, потому что в нём содержится пробел.


    вот тельце бат-файла:


    Code:
    [COLOR=SlateGray]:: starting entourage 0[/COLOR]
    
    @[COLOR=Sienna]ECHO[/COLOR] off
    [COLOR=Sienna]CLS[/COLOR]
    
    [COLOR=Sienna]SET[/COLOR] SELF_DIR=[B]%~dp0[/B]
    [COLOR=Sienna]SET[/COLOR] PHP_EXE=[B]%SELF_DIR%[/B]etc\php-5.3.1 php.net\php.exe
    
    [COLOR=Sienna]TITLE[/COLOR] et/0 - [B]%DATE%[/B] [B]%TIME%[/B]
    [COLOR=Sienna]START[/COLOR] /D"[B]%SELF_DIR%[/B]\et\0" /HIGH /B "[B]%PHP_EXE%[/B]" et.php
    в данном случае программа не исполнится и произойдёт открытие файла et.php по сопоставлению типов (у меня в текстовом редакторе открылся)
    если передать программу без пробелов в пути и без кавычек, то всё работает как нужно - et.php передаётся указанной программе.

    я так понял, я неправильно пользуюсь конструкцией start.
    как в неё правильно передавать имя исполняемого файла, если в нём содержится пробел?
    встроенный help не помог.
     
  2. semmes

    semmes Banned

    Joined:
    18 Nov 2007
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    Используй короткое имя файла по стандарту 8.3 ака dos.
    Dir /x тебе подскажет имя.
    или путь с пробелом поставь в кавычки - "путь"
     
    #2 semmes, 7 Feb 2010
    Last edited: 7 Feb 2010
    1 person likes this.
  3. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    короткое имя помогло - всё заработало.
    но короткое имя не содержит пробелов, а хотелось бы с пробелом передать.

    в скрипте в кавычках стоит.. дело в том что если даже путь без пробелов поставить в кавычки - не работает, как надо.
    ещё пробовал ставить значение пути в кавычки при объявлении переменной - тот же эффект.
    можешь на примере показать, если не лень? видимо я тебя неправильно понял.