В настоящее время мой простой пакетный скрипт выглядит так:
@echo off
for /D /r C:\myprojects\AIS\ %%G in (_svn) do rd /S /Q %%G
pause
К сожалению, при этом пропускаются все каталоги, в которых есть пробел, например, каталог под названием «Мои проекты». Как мне обойти это и убедиться, что я также просматриваю этот каталог?
0
Chris
4 Сен 2009 в 22:25
Это винда (дос)? возможно, тег «пакетный файл»
– Jared Updike
4 Сен 2009 в 22:26
Да, это. Я поставлю на него тег «пакетный», но я также включу «пакетный файл», если хотите.
– Chris
4 Сен 2009 в 22:28
Извините, не видел, мозг умер в пятницу утром
– Jared Updike
4 Сен 2009 в 22:29
Не беспокойтесь :) Я все равно добавил его, чтобы все было поконкретнее.
– Chris
4 Сен 2009 в 22:29
2 ответа
Хм... кажется, у меня работает. Вы пробовали эхо вместо этого?
C:\tmp> TREE /A C:\tmp\xxx
C:\TMP\XXX
\---one one
\---two two
C:\tmp> FOR /D /R c:\tmp\xxx %I IN (_svn) DO @ECHO RD "%I"
RD "c:\tmp\xxx\_svn"
RD "c:\tmp\xxx\one one\_svn"
RD "c:\tmp\xxx\one one\two two\_svn"
Вам, вероятно, нужны кавычки вокруг аргумента rmdir
. Если вы хотите быть по-настоящему параноиком, то вместо этого используйте %~I
, чтобы защититься от хаоса, который в противном случае вызвал бы FOR /D /R ... %I IN ("_svn")
.
2
D.Shawley
4 Сен 2009 в 23:13
Можете ли вы поставить кавычки вокруг имени каталога?
1
Jack T. ColtonJack T. Colton
4 Сен 2009 в 22:28
Я пробовал это: для /D /r C:\electionscanadaprojects\AIS\ "%%G" в (_svn) сделать rd /S /Q "%%G", так как %%G содержит имя каталога, но не кости.
– Chris
4 Сен 2009 в 22:29
Вам нужно как-то избегать кавычек? Я просто предполагаю, что я не DOS-парень (это DOS, верно?)
– Jack T. Colton
4 Сен 2009 в 22:30
Да это дос. Я не думаю, что вам нужно избегать кавычек, так как это обычно работает, если вы указали прямой путь к каталогу. Однако я думаю, что его хранение в переменной вызывает у меня проблемы. (Я знаю пакетные сценарии. Может ошибаться)
– Chris
4 Сен 2009 в 22:33
Так это нехорошо, верно? for /D /r C:\electionscanadaprojects\AIS\ \"%%G\" in (_svn) do rd /S /Q "%%G"
– Jack T. Colton
4 Сен 2009 в 22:35
1
Быстрое предположение, не должны ли кавычки быть вокруг второго экземпляра %%G, а не вокруг первого?
– Philip Kelley
4 Сен 2009 в 22:39
Похожие вопросы
Новые вопросы
batch-file
Пакетный файл - это текстовый файл, содержащий серию команд, которые выполняются интерпретатором команд в системах MS-DOS, IBM OS / 2 или Microsoft Windows.