2013-10-03 2 views
0

Используя пакетный файл (.bat), я создаю скрипт, который требует динамических путей, чтобы он мог работать на нескольких компьютерах. Моя проблема в том, что когда я повторяю что-то в файле, он добавляет строку и возвращаемую карету.Эхо в файл приводит к пробелам в партии

Скажем, у меня есть текстовый файл с именем foo.txt в каталоге командного файла, и его содержимое полностью пуст.

В пакетном файле, я бегу:

echo test > foo.txt 

Содержимое foo.txt будет:

L1: foo 

L2: 

Там будет пробел после foo в первой строке и второй пустая строка. Теперь это было бы вполне нормально, и я бы полностью проигнорировал его, но пути к файлам не игнорируют его.

импорта текста из foo.txt так:

set /p foo=< foo.txt 

... а потом:

set /p name=< C:\A.D.V.E.N.T.U.R.E.\test\%foo%\test2.txt 

... будет истолковано как:

set /p name=< C:\A.D.V.E.N.T.U.R.E.\test\foo \test2.txt 

В том числе нежелательное пространство. Есть ли способ сделать это так, что вы можете писать текст в файл без пробела или команду, которую можно использовать для удаления возврата каретки и пробела?

ответ

2

Данные должны быть test, не foo

классически, попробуйте

>foo.txt echo test 

, но убедитесь, что нет никаких завершающих пробелов после test.

(добавляемый к foo.txt использованию >> вместо >)

+0

Спасибо! Хотя он все еще вставлял возврат каретки, пространство теперь ушло! – Poyo

+0

Обратите также внимание, что 'echo test> foo.txt' будет работать так же хорошо. Чтобы избавиться от пространства, вы просто ... ну, избавитесь от пространства! –

+2

Ah, true, @harry - но он не может создать полную строку, если строка, которую нужно эхо, завершает цифрой, тогда как '' файл echo something' делает. – Magoo

4

Вы также можете использовать круглые скобки, чтобы убедиться, что нежелательное пространство не входят в выводе:

(echo test)  >foo.txt 

 Смежные вопросы

  • Нет связанных вопросов^_^