2013-06-28 3 views
1

У меня есть пакетный скрипт, который проверяет, существует ли каталог, а затем отображает его, если он существует.Обратная косая черта в пути к каталогу, в чем разница?

if exist \\server\folder1\%username% net use g: \\server\folder1\%username% 

В последнее время сценарий не был правильно отображение с некоторыми компьютерами, на этих компьютерах в потребности быть изменение

if exist \\server\folder1\%username%\ net use g: \\server\folder1\%username% 

Почему бы, что обратная косая разница? Разве это не указывает на тот же каталог? Почему «если есть» это нужно, а «сетевое использование» не нуждается в этом? Пользователи НЕ имеют доступ к папке1.

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

net use g: \\\\server\folder1\%USERNAME% 

Почему бы он поставил четыре косую черту?

+0

для вашего первого вопроса, возможно, есть пробел в имени пользователя? –

+0

Я вижу то же поведение WRT 'IF EXIST' с обратной косой чертой и без нее. Я не думаю, что это проблема. Как правило, я всегда заключу пути в кавычки для учета возможности их размещения пробелов или других специальных символов (надеюсь, двойные кавычки не разрешены в именах пользователей). Для последнего вопроса единственная причина, по которой кто-то хотел бы использовать четыре обратных слэша, - это то, что значение было в строке, которая должна была быть интерполирована. Это не работает вообще в пакетной/CMD. Скорее всего, путь, скопированный из скрипта Perl (или чего-то подобного), например '' \\\\ server \ share \ dir1'' – mojo

ответ

2

Я не уверен, если это ваша проблема, но if exist \\server\folder1\%username% ИСТИНА, если
%username% является допустимым файлом или папку в folder1.

Добавление обратной косой черты в конце заставляет условие быть истинным только в том случае, если существует папка.