Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Слова вводимые пользователем разбить на части и присвоить переменным (http://forum.oszone.net/showthread.php?t=341648)

zerdox@vk 01-08-2019 21:34 2882335

Слова вводимые пользователем разбить на части и присвоить переменным
 
Нужно запросить у пользователя ввод текста, разбить текст на части (пробел означает новая часть) и каждую часть присвоить отдельной переменной, значение которой будет являться именем файла, то есть на каждое слово будет создаваться один файл.
Слов может быть до 16 штук.
Можно через Powershell или любой другой инструмент который есть на Win10? можно даже будет скачать что-нибудь. Самое главное чтобы можно было это записать в файлик и при запуске срабатывал сценарий.
Как я это представляю:
Код:

set /P project_name="Files: "
*пользователь вводит: advantages works about portfolio order call*
Код:

*магический код*
*Создалось 6 файлов: advantages.html works.html about.html portfolio.html order.html call.html*

Всем спасибо за любые советы и подсказки.

P.S Еще дополнительный вопрос появился, возможно ли запускать программу из BAT и сразу закрывать окно после этого? Я знаю что можно запускать exe через start, но у меня специальная команда "code ." которая запускает программу vscode с уже открытой папкой (откуда вызвали саму программу), и после нее батник приходится закрывать вручную, либо окно закрывается когда я закрываю visual studio code.

Iska 01-08-2019 22:16 2882339

Пакетный файл
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set /p "sProjectNames=Enter project names: "

if defined sProjectNames for %%i in (%sProjectNames%) do >nul copy /y nul "%%~i.html" && echo Create file [%%~i.html].|| echo Can't create file [%%~i.html].

endlocal
exit /b 0

Скрипт WSH
Код:

Option Explicit

Dim strProjectNames
Dim strProjectName


With WScript.CreateObject("Scripting.FileSystemObject")
        If StrComp(.GetFileName(WScript.FullName), "wscript.exe", vbTextCompare) = 0 Then
                strProjectNames = Trim(InputBox("Enter project names:", "Enter project names"))
        Else
                WScript.StdOut.Write "Enter project names:"
                strProjectNames = Trim(WScript.StdIn.ReadLine())
        End If
       
        If Len(strProjectNames) > 0 Then
                For Each strProjectName In Split(strProjectNames)
                        .CreateTextFile(strProjectName & ".html", True).Close
                        WScript.Echo "Create file [" & strProjectName & ".html]."
                Next
        End If
End With

WScript.Quit 0


Цитата:

Цитата zerdox@vk
но у меня специальная команда "code ." »

Расскажите про это подробнее.

YuS_2 02-08-2019 08:22 2882371

Цитата:

Цитата zerdox@vk
Можно через Powershell »

Код:

$ext = ".html"
#Содержимое файлов:
$html = @'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
    window.onbeforeunload = function() {
        return ''
    }
</script>
<SCRIPT>
function kill(){window.close ();}
</SCRIPT>
</head>
<body>
<h1>Закрой меня!</h1>
<h1>Так:</h1>
<br>
<input type=button name = Ы value = "Нажмите" onClick=kill()>
<br>
<h1>Или так:</h1>
<a href="#" onClick="parent.self.close(); return false">Закрытие страницы</a>
</body>
</html>
'@

$var = read-host "Files"
[array]$var = $var.split()
$var|%{new-item -n ("$_"+$ext) -it 'file' -v $html}

Цитата:

Цитата zerdox@vk
Я знаю что можно запускать exe через start »

через старт можно запускать всё, что запускаемо...
Код:

start "" cmd /c "echo здесь могли быть команды для запуска&pause"

zerdox@vk 02-08-2019 13:49 2882415

Цитата:

Цитата Iska
Расскажите про это подробнее. »

Есть редактор кода Visual Studio Code, где я и работаю. У меня есть в папке проектов батник, который автоматизирует создание нового проекта, если интересно то вот его содержимое:
Код:

(
git clone https://github.com/ZerdoX-x/project.git

set /P project_name="Project Name is -  "
ren "project" "%project_name%"

ren *.psd "%project_name%".psd
move *.psd "%project_name%\psd"

cd %project_name%

rd /S /Q .git
del /F /Q psd\.gitkeep.txt
del /F /Q src\fonts\.gitkeep.txt
del /F /Q src\img\.gitkeep.txt

cd src
powershell -Command "(gc index.html) -replace '<title>Title</title>', '<title>%project_name%</title>' | Out-File -encoding ASCII index.html"
cd ..\

code .

И мне нужно чтобы после последней команды окно автоматически закрывалось, а не дожидалось закрытия vscode. Команду я взял отсюда, из официальной документации. Вся суть в том что эта команда запускает редактор с уже открытой папкой, откуда ее запустили. Если я буду запускать просто как exe файл, командой start и тогда командная строка не будет дожидаться завершения программы, но мне придется вручную заходить в папку нового проекта. А тут я именно указываю директорию относительно места, где запустился vscode - в моем случае это корневая директория - "."
Вот когда я запускаю программу через code . - скриншот
А когда я запускаю просто как exe, у меня открывается папка в которой лежит программа.

Сейчас снова решил попробовать, вставил вместо "code ." "cmd /c start /D "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code" Code.exe" и все заработало точно так-же) странно.. (я не разбираюсь что означают все эти префиксы и прочее, видимо в прошлый раз я команду брал из другого источника и что-то там было написано по другому, сам я это не пишу, все беру из интернета)
В общем проблема решилась сама собой:)
И возможно вы знаете как правильно сохранить файл чтобы мне в начале убрать эту надоедливую скобку. Я ее туда поставил из-за кодировки файла, потому что на первую команду почему-то вставляется "я╗┐"
скриншот (в самом файле нет этих символов, они именно если запускать батник появляются)

По поводу сценария, спасибо большое, все работает. Но не совсем понял куда нужно прописать путь, чтобы он клал файлы не туда откуда вызвался батник, а относительно него по пути:
"%project_name%\src\template\"

YuS_2 02-08-2019 15:02 2882429

Цитата:

Цитата zerdox@vk
в самом файле нет этих символов, они именно если запускать батник появляются »

Это так называемый BOM, маркер последовательности байтов, по которому косвенно определяется кодировка файла. Это "невидимый" символ, который вставляют редакторы.
В общем, батники сохраняйте в кодировке cp866 (OEM) и тогда таких проблем не будет возникать.

Цитата:

Цитата zerdox@vk
Но не совсем понял куда нужно прописать путь, чтобы он клал файлы не туда откуда вызвался батник, а относительно него по пути »

не совсем понятно про какой сценарий речь, здесь ведь весь топик в сценариях. :)

zerdox@vk 02-08-2019 16:02 2882437

Цитата:

Цитата YuS_2
не совсем понятно про какой сценарий речь, здесь ведь весь топик в сценариях. »

Так куда все такие прописать папку? Это окончательный мой вопрос, все остальное я понял. Спасибо всем еще раз.

zerdox@vk 02-08-2019 16:51 2882447

просто решу это при помощи cd

YuS_2 02-08-2019 17:10 2882448

Цитата:

Цитата zerdox@vk
Так куда все такие прописать папку? »

Если речь про мой сценарий, то вот так можно будет вводить путь к целевому каталогу:
Код:

$ext = ".html"

#Содержимое файлов:
$html = @'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
    window.onbeforeunload = function() {
        return ''
    }
</script>
<SCRIPT>
function kill(){window.close ();}
</SCRIPT>
</head>
<body>
<h1>Закрой меня!</h1>
<h1>Так:</h1>
<br>
<input type=button name = Ы value = "Нажмите" onClick=kill()>
<br>
<h1>Или так:</h1>
<a href="#" onClick="parent.self.close(); return false">Закрытие страницы</a>
</body>
</html>
'@

#Путь к целевому каталогу:
$path = 'z:\Folder'

if (!(test-path $path)){md $path|out-null}
$var = read-host "Files"
[array]$var = $var.split()
$var|%{ni -p $path -n ("$_"+$ext) -it 'file' -v $html}

и это не батник, это сценарий powershell, здесь прописывать путь в таком виде:
Цитата:

Цитата zerdox@vk
"%project_name%\src\template\" »

не получится.

Iska 02-08-2019 21:24 2882466

Цитата:

Цитата YuS_2
здесь прописывать путь в таком виде:
Цитата zerdox@vk:
"%project_name%\src\template\" »
не получится. »

А если, как в WSH, принудительно раскрывать такую строку?
Код:

[environment]::ExpandEnvironmentVariables('%SystemRoot%\System32')

YuS_2 03-08-2019 08:36 2882480

Цитата:

Цитата Iska
А если, как в WSH, принудительно раскрывать такую строку? »

если переменную вынести в системные, то можно, но там ведь локальная переменная, которая существует только в пределах batch-сценария.
В том смысле, что powershell-у неизвестно ничего о существовании такой переменной.
Можно просто через батник вызвать powershell сценарий и там же передать сценарию значение этой переменной...

YuS_2 03-08-2019 09:29 2882488

zerdox@vk,
В личке лучше не решать задачи, тут больше людей, которые всегда могут подсказать какой-либо другой вариант и возможно он будет лучшим.
В общем, примерно так:
script.ps1 - кодировка utf8
Код:

param(
        [string]$path = '.',
        [string]$extension = ".html"
)

if (!(test-path $path)){
        write-host Такого пути не существует. Создаем каталог $path -for red
        md $path|out-null
}

$var = read-host "Files"
[array]$var = $var.split()
$var|%{ni -p $path -n ("$_"+$extension) -it 'file' -v @"
<section id="$_">
        <div class="content">
       
        </div>
</section>
"@
}

В свой основной батник добавляете такую строку, в нужном месте:
Код:

powershell -c "&{.\script.ps1 -path '%project_name%\src\template\'}"
естественно, в том месте, в момент выполнения кода, переменная %project_name% должна существовать.
Если в этой переменной присутствует относительный путь, то во избежание различных коллизий, лучше привести путь к абсолютному, т.к. не проверял скрипт на работу с относительными путями...

Путь к скрипту powershell можно тоже заменить на абсолютный, если потребуется.

zerdox@vk 03-08-2019 09:45 2882489

Скрытый текст



Что-то не так сделал?
Скрытый текст



YuS_2 03-08-2019 11:17 2882499

Цитата:

Цитата zerdox@vk
Что-то не так сделал? »

скрипт powershell "script.ps1" должен находиться в том каталоге, который будет текущим на момент его вызова, либо:
Цитата:

Цитата YuS_2
Путь к скрипту powershell можно тоже заменить на абсолютный, если потребуется. »

да, кстати, внутри скрипта удалите $value =, это там лишнее... это были остатки от теста...

кроме того, в переменной %project_name% у Вас в наличии только имя каталога и в итоге, путь получается относительным.
Сначала необходимо привести его к абсолютному и потом подставлять в строку запуска скрипта.
Примерно так:
Код:

set "abs=z:\абсолютный_путь_к_каталогам_проектов\%project_name%\src\template\"
powershell -c "&{'z:\абсолютный_путь_к_скрипту\script.ps1' -path '%abs%'}"


zerdox@vk 03-08-2019 14:47 2882519

Цитата:

Цитата YuS_2
скрипт powershell "script.ps1" должен находиться в том каталоге, который будет текущим на момент его вызова »

Понял, там ошибка в точке, не ".\", а "..\", как всегда - мелочь.

YuS_2 03-08-2019 15:02 2882522

Цитата:

Цитата zerdox@vk
Понял, там ошибка в точке, не ".\", а "..\", как всегда - мелочь. »

Это не ошибка, это просто относительные пути, одна точка - текущий каталог, две точки - родительский каталог.
По Вашим скринам это можно увидеть:
Если скрипт лежит у Вас в каталоге:
Код:

C:\User\1234\Desktop\projects
а на момент запуска, текущим является:
Код:

C:\User\1234\Desktop\projects\test1
то при попытке запуска скрипта из этого каталога:
Код:

powershell -c "&{.\script.ps1}"
естественно, powershell его не увидит, но увидит в родительском от текущего:
Код:

powershell -c "&{..\script.ps1}"
В общем, как я и написал выше:
Цитата:

Цитата YuS_2
во избежание различных коллизий, лучше привести путь к абсолютному »


zerdox@vk 03-08-2019 15:35 2882526

В общем разобрался, вот результаты:
Вывод консоли

C:\Users\1234\Desktop\projects>git clone https://github.com/ZerdoX-x/project.git
Cloning into 'project'...
remote: Enumerating objects: 15468, done.
remote: Counting objects: 100% (15468/15468), done.
remote: Compressing objects: 100% (10696/10696), done.
remote: Total 15468 (delta 4201), reused 15463 (delta 4196), pack-reused 0
Receiving objects: 100% (15468/15468), 16.17 MiB | 6.92 MiB/s, done.
Resolving deltas: 100% (4201/4201), done.

C:\Users\1234\Desktop\projects>set /P project_name="Project Name is - "
Project Name is - test

C:\Users\1234\Desktop\projects>Powershell.exe -executionpolicy remotesigned -File script.ps1
Sections: a b c d


Каталог: C:\Users\1234\Desktop\projects\project\src\template


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 03.08.2019 17:22 71 a.html
-a---- 03.08.2019 17:22 71 b.html
-a---- 03.08.2019 17:22 71 c.html
-a---- 03.08.2019 17:22 71 d.html


Каталог: C:\Users\1234\Desktop\projects\project\src\styles\sections


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 03.08.2019 17:22 6 a.sass
-a---- 03.08.2019 17:22 6 b.sass
-a---- 03.08.2019 17:22 6 c.sass
-a---- 03.08.2019 17:22 6 d.sass



C:\Users\1234\Desktop\projects>ren "project" "test"

C:\Users\1234\Desktop\projects>ren *.psd "test".psd
Не удается найти указанный файл.

C:\Users\1234\Desktop\projects>move *.psd "test\psd"
Файл с таким именем уже существует
или не найден.

C:\Users\1234\Desktop\projects>cd test

C:\Users\1234\Desktop\projects\test>rd /S /Q .git

C:\Users\1234\Desktop\projects\test>del /F /Q psd\.gitkeep.txt src\fonts\.gitkeep.txt src\img\.gitkeep.txt

C:\Users\1234\Desktop\projects\test>powershell -Command "(gc .\src\index.html) -replace '<title>Title</title>', '<title>test</title>' | Out-File -encoding ASCII index.html"

C:\Users\1234\Desktop\projects\test>Choice /M "Download jQuery?"
Download jQuery? [Y,N]?Y

C:\Users\1234\Desktop\projects\test>If Errorlevel 2 Goto No

C:\Users\1234\Desktop\projects\test>If Errorlevel 1 Goto Yes

C:\Users\1234\Desktop\projects\test>call npm i jquery --save-dev

> node-sass@4.12.0 install C:\Users\1234\Desktop\projects\test\node_modules\node-sass
> node scripts/install.js

Cached binary found at C:\Users\1234\AppData\Roaming\npm-cache\node-sass\4.12.0\win32-x64-72_binding.node

> node-sass@4.12.0 postinstall C:\Users\1234\Desktop\projects\test\node_modules\node-sass
> node scripts/build.js

Binary found at C:\Users\1234\Desktop\projects\test\node_modules\node-sass\vendor\win32-x64-72\binding.node
Testing binary
Binary is fine

> gifsicle@4.0.1 postinstall C:\Users\1234\Desktop\projects\test\node_modules\gifsicle
> node lib/install.js

√ gifsicle pre-build test passed successfully

> jpegtran-bin@4.0.0 postinstall C:\Users\1234\Desktop\projects\test\node_modules\jpegtran-bin
> node lib/install.js

√ jpegtran pre-build test passed successfully

> optipng-bin@5.1.0 postinstall C:\Users\1234\Desktop\projects\test\node_modules\optipng-bin
> node lib/install.js

√ optipng pre-build test passed successfully
npm WARN activebox@1.0.0 No description
npm WARN activebox@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ jquery@3.4.1
added 935 packages from 623 contributors and audited 14350 packages in 59.608s
found 0 vulnerabilities



Код start_project.bat

git clone https://github.com/ZerdoX-x/project.git

set /P project_name="Project Name is - "

Powershell.exe -executionpolicy remotesigned -File script.ps1

ren "project" "%project_name%"

ren *.psd "%project_name%".psd
move *.psd "%project_name%\psd"

cd %project_name%

rd /S /Q .git
del /F /Q psd\.gitkeep.txt src\fonts\.gitkeep.txt src\img\.gitkeep.txt

powershell -Command "(gc .\src\index.html) -replace '<title>Title</title>', '<title>%project_name%</title>' | Out-File -encoding ASCII index.html"

Choice /M "Download jQuery?"
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes
Goto End

:No
call npm i
Goto End

:Yes
call npm i jquery --save-dev
cd src\js\
echo //= ../../node_modules/jquery/dist/jquery.min.js > script.js
cd ..\..\
:End

code .


Код script.ps1

param(
[string]$html_path = 'project\src\template\',
[string]$sass_path = 'project\src\styles\sections\',
[string]$html = ".html",
[string]$sass = ".sass"
)

if (!(test-path $html_path)){
write-host Такого пути не существует. Создаем каталог $html_path -for red
mkdir $html_path|out-null
}
if (!(test-path $sass_path)){
write-host Такого пути не существует. Создаем каталог $sass_path -for red
mkdir $sass_path|out-null
}

$sections = read-host "Sections"
[array]$sections = $sections.split()

$sections|ForEach-Object{New-Item -p $html_path -n ("$_"+$html) -it 'file' -v @"
<section id="$_">
<div class="content">

</div>
</section>
"@
}

$sections|ForEach-Object{New-Item -p $sass_path -n ("$_"+$sass) -it 'file' -v @"
#$_

"@
}


Все работает, как и ожидалось. Единственное - консоль сама не закрывается, все равно приходится после открытия vscode закрывать окно консоли вручную, нашел решение, но для меня оно к сожалению не сработало, заменив строку
Код:

code .
на
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Сode.exe" <.>\.
получаю ошибку 'отказано в доступе':
Скрытый текст



У exe'шника стоят все разрешения и у корневой папки тоже. Пробовал запускать bat с правами администратора, или через cmd (тоже с правами администратора) - результат один. Тут скорее всего проблема в настройках винды, а не в программе которую я пытаюсь запустить. Возможно есть идеи?

YuS_2 03-08-2019 15:49 2882528

Цитата:

Цитата zerdox@vk
получаю ошибку 'отказано в доступе': »

А там точно исполняемый файл начинается на кириллический символ "С" (0x0421) ? :)
Code.exe и Сode.exe - это два разных файла, если что.

zerdox@vk 03-08-2019 16:12 2882531

Цитата:

Цитата YuS_2
Code.exe и Сode.exe - это два разных файла »

Поменял.. Скопировал путь прямо из проводника, теперь там буква C точно, но результат не изменился.
Еще смущает что в консоли
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe"  0<. 1>\.
а не
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe" <.>\.
как я прописал..
Или это нормально, раз вы ничего не сказали по этому поводу?
Могу лишь догадываться что проблема снова в кодировке. Я готов пожертвовать первой строчкой и вставить туда какой-нибудь символ, если oem 866 уже не подходит)

Iska 03-08-2019 17:23 2882554

Цитата:

Цитата zerdox@vk
Еще смущает что в консоли
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe"  0<. 1>\.
»

0 — это stdin, 1 — это stdout (стандартные потоки, Standard streams - Wikipedia). Это нормально. Так и должно быть на Ваше:
Цитата:

Цитата zerdox@vk
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe" <.>\.
»

Нахрена зачем там нужны «<» и «>» — другой вопрос.

zerdox@vk 03-08-2019 17:43 2882559

Цитата:

Цитата Iska
зачем там нужны «<» и «>» — другой вопрос. »

Какой раз уже благодарю вас! В ответе на stackoverflow было написано "<path_to_dir>", я подумал что между "<" и ">" нужно было писать путь, вот я и написал корневую директорию, но когда стер понял что ".\." это то же самое что и ".", поэтому стер после пути "\." и получилось вот это:
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe" .
В общем это тот же самый "code ." но с прямым путем до файла.
Странно, как редактор кода понимает то, что ему передали через консоль? Это как-то предусмотрено в самой программе? У меня были мысли просто так-же запустить exe через старт и после пути к приложению добавить точку как аргумент который принимается за путь (точно так же как в команде "code .") но я посчитал это глупой идеей. Да и в любом случае я бы не догадался до "пустых" кавычек перед путем, фиг его знает что это означает, в комментарии кстати писали на stackoverflow что именно эта часть была упущением у кого-то.

Цитата:

Цитата Iska
зачем там нужны «<» и «>» — другой вопрос. »

Какой раз уже благодарю вас! В ответе на stackoverflow было написано "<path_to_dir>", я подумал что между "<" и ">" нужно было писать путь, вот я и написал корневую директорию, но когда стер понял что ".\." это то же самое что и ".", поэтому стер после пути "\." и получилось вот это:
Код:

Start "" "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe" .
В общем это тот же самый "code ." но с прямым путем до файла.
Странно, как редактор кода понимает то, что ему передали через консоль? Это как-то предусмотрено в самой программе? У меня были мысли просто так-же запустить exe через старт и после пути к приложению добавить точку как аргумент который принимается за путь (точно так же как в команде "code .") но я посчитал это глупой идеей. Да и в любом случае я бы не догадался до "пустых" кавычек перед путем, фиг его знает что это означает, в комментарии кстати писали на stackoverflow что именно эта часть была упущением у кого-то.

Iska 03-08-2019 18:30 2882583

Цитата:

Цитата zerdox@vk
В ответе на stackoverflow было написано "<path_to_dir>", я подумал что между "<" и ">" нужно было писать путь, »

Да, писать путь. Но надо понимать, что в таком исполнении символы «<» и «>» всего лишь обозначают именование параметра, и не должны включаться в значение самого параметра. Точно так же, символы «[» и «]» обозначают необязательность параметра.

Цитата:

Цитата zerdox@vk
но с прямым путем до файла. »

С полным (или абсолютным) путём.

Цитата:

Цитата zerdox@vk
Странно, как редактор кода понимает то, что ему передали через консоль? »

А ему ничего и не «передаётся через консоль». Мы указываем параметр «.» при вызове исполняемого файла "C:\Users\1234\AppData\Local\Programs\Microsoft VS Code\Code.exe" (надо полагать, если «1234» — текущий пользователь, то имеет смысл заменить «C:\Users\1234\AppData\Local» на «%LOCALAPPDATA%»).

Цитата:

Цитата zerdox@vk
У меня были мысли просто так-же запустить exe через старт и после пути к приложению добавить точку как аргумент который принимается за путь (точно так же как в команде "code .") но я посчитал это глупой идеей. »

Это была здравая идея.

Цитата:

Цитата zerdox@vk
Да и в любом случае я бы не догадался до "пустых" кавычек перед путем, фиг его знает что это означает, »

Не переживайте, почти каждый попадался на данной «фиче». Смотрите:
start /?
Код:

Запуск указанной программы или команды в отдельном окне.

START ["заголовок"] [/D путь] [/i] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <узел NUMA>] [/AFFINITY <маска сходства>] [/WAIT] [/b]
      [команда/программа] [параметры]

    "заголовок" Заголовок окна.
    путь        Исходный каталог.


В данном случае, это особенность поведения внутренней команды start: она рассматривает всё, что содержится в кавычках, как параметр «заголовок». Именно поэтому, если у нас путь к исполняемому файлу заключается в кавычки, нам приходится добавлять параметр заголовок (в Вашем случае пустой — просто две кавычки).


Время: 00:03.

Время: 00:03.
© OSzone.net 2001-