Как обойти проблему «по дизайну» с Windows dir? - PullRequest
0 голосов
/ 26 марта 2009

dir / b создает хороший список только для файлов

dir / x создает подробный список (дата, время, размер, длинное имя, короткое имя)

Однако, если вы комбинируете два (т.е. dir / b / x), ключ / x игнорируется. такое поведение в соответствии с этой страницей является заданным.

Так что, если вы попросите простой список, содержащий только краткие имена файлов, Редмонд (Microsoft) скажет, что давать вам это против небесных правил.

Как можно обойти эту проблему «по замыслу»?

большое спасибо заранее

p.s. это поможет мне достичь чего-то объясненного в этом вопросе. пять добрых друзей отправили ответы, которым я очень благодарен, но ни один из ответов не помог мне получить то, что я хочу.

Ответы [ 3 ]

3 голосов
/ 26 марта 2009

Попробуйте это:

for /f "usebackq delims=" %X in (`dir /b`) do @echo %~nsxX

Или, если вам нужны полные пути:

for /f "usebackq delims=" %X in (`dir /b`) do @echo %~fsX

Для получения дополнительной информации см. Справку for:

for /?

Обратите внимание, что если вы используете эти команды в командном файле, вам нужно удвоить знаки %. Например:

for /f "usebackq delims=" %%X in (`dir /b`) do @echo %%~nsxX
1 голос
/ 26 марта 2009

Если не считать выгрузки dir / x в текстовый файл и его анализа, я не уверен, что предложить. У вас есть возможность запустить все, что вы делаете в коде?

Это более сложное решение, но писать что-то, используя perl или другой язык сценариев; или иди и напиши какой-нибудь код на C #.

Я подозреваю, что вы получите те же ответы, что и на предыдущий вопрос ...

0 голосов
/ 26 марта 2009

Вы можете написать собственный исполняемый файл со списком каталогов. Это не займет много времени, чтобы что-то взбодрить в C #. Используйте Directory.GetFiles (), чтобы получить список каталогов, и передайте каждый из них в Win32-функцию GetShortPathName ().

На этой странице есть хороший пример того, как вызывать GetShortPathName () из C #: http://csharparticles.blogspot.com/2005/07/long-and-short-file-name-conversion-in.html

...