2017-01-27 12 views
1

ОК простой я хочу сделать пакетный скрипт, который:пакетный скрипт, чтобы сделать пакетный скрипт

  1. Makes папки экспорта на рабочем столе пользователей
  2. из новых (как не копируя откуда-то) сделать пакетный сценарий эта папка, в которой перечисляется содержимое этой папки после того, как пользователь заполняет ее и сохраняет ее на рабочем столе.

проблема я бегу, чтобы это я пытаюсь использовать эхо скопировать намеченную новый текст сценария из исходного пакетного файла в новый, как это:

@echo off 
mkdir "C:\Users\%username%\Desktop\Export" 
echo dir "C:\Users\%username%\Desktop\Export" /W /A:-H /B > "C:\Users\%username%\Desktop\Readout.txt" > "C:\Users\%username%\Desktop\Export\Directoty_List.bat" 

проблема является что команда echo видит «>» в ​​качестве конца инструкции и записывает первую часть в текстовый файл рабочего стола, но я хочу, чтобы она увидела второй «>». как мне обойти это?

Спасибо

+0

денешься с кареткой, ^> – Richard

+1

Возможные дубликатом [Batch не экономить должным образом ] (http://stackoverflow.com/questions/41872223/batch-not-saving-properly) – aschipfl

ответ

0

Как @Richard сказал в комментариях, вы можете избежать > с Carret знаком ^>. Большинство персонажей со специальным значением в cmd могут быть экранированы с помощью carret, если вы не хотите использовать это особое значение.
Обычно золотое правило: ставьте все между двойными кавычками. Внутри двойных кавычек символы с особыми значениями также сбрасываются. К сожалению, echo также напечатает кавычки, так что это не поможет в вашем случае. Тем не менее, стоит упомянуть, что кавычки помогают при установке значений переменных со специальными символами, передавая аргументы со специальными символами, определяют пути со специальными символами (пробелы или скобки, например,), ... но не с echo.

Существует еще один совет, который я хотел бы дать: вы можете использовать %userprofile% вместо указания полного пути C:\Users\%username%

@echo off 
mkdir "%userprofile%\Desktop\Export" 
echo dir "%userprofile%\Desktop\Export" /W /A:-H /B ^> "%userprofile%\Desktop\Readout.txt" > "%userprofile%\Desktop\Export\Directoty_List.bat"