Компьютерный форум 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=243639)

PhantomLo 29-09-2012 21:49 1996750

Не удается создать паузу в однострочной команде
 
Выполняя команду DxDiag /T столкнулся с проблемой что директория необходимая для сохранения лога имеет пробелы. Если прибегнуть к форме DxDiag /t "[полный путь]" то команда и вовсе не срабатывает.
Решил прибегнуть к созданию файла в корне диска и копированием его куда надо при помощи XCOPY, но вот незадача... XCOPY выполняется раньше чем создается DxDiag.txt

Пробовал делать вот так, но в консоли пинг не выполняется и сразу выполняется XCOPY. Как можно добиться одной строчкой создание паузы в процессе выполнения
HTML код:

DxDiag /t E:\DxDiag.txt | ping -n 10 127.0.0.1 >nul | echo F|XCOPY E:\DxDiag.txt D:\DxDiag.txt
П.с.
Одна строчка нужна чтобы не создавая батника выполнить команду сразу в консоли

Iska 30-09-2012 00:54 1996817

PhantomLo, разделителем команд является символ амперсанда — «&». То, что используете Вы, к месту и не к месту, зовётся конвейером и служит для передачи stdout одного приложения в stdin другого.

1. Самый простой выход — использовать короткое имя пути. Например, для «E:\Some Path With Spaces» это может быть «E:\SOMEPA~1» и т.п. (реальное короткое имя пути смотрите по «dir /x»):
Код:

dxdiag.exe /t E:\SOMEPA~1\DxDiag.txt
2.
Код:

dxdiag.exe /t e:\DxDiag.txt & (copy "e:\DxDiag.txt" "E:\Some Path With Spaces\" && del "e:\DxDiag.txt")
Отчего Вы решили пользовать «xcopy.exe» вместо «copy»?!


Время: 03:29.

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