Назад | Перейти на главную страницу

Код пакетного файла для поиска и переименования всех файлов, заканчивающихся пробелом?

Мы размещаем файлы Macintosh на наших серверах Windows 2008. У них есть такие файлы, как

somegraphic.eps
._somegraphics.eps (hidden)

Часто наши пользователи добавляют в файлы нестандартные символы, такие как маркеры и пробелы в конце имен файлов. Это позволяет им добавлять символы, но не позволяет им изменять имена файлов после нажатия кнопки ввода.

Два вопроса:

  1. Как в пакетном файле получить список всех файлов, заканчивающихся пробелом?
  2. Как в пакетном файле можно массово переименовывать все файлы, удаляя ненужные символы?

В этом отношении:

  1. Как получить список всех файлов в системе с указанием времени их изменения и в формате XML или простого импорта данных?

Обсуждение:

Я пытаюсь переименовать с именем файла dir / x, но скрытые свойства, похоже, мешают этому.

Обычно я делаю dir / b / s, чтобы получить полный поиск в каталоге в чистом формате, но он не включает время изменения.

Создайте файл с пробелом в конце:

echo Foo >  "\\?\c:\rcs\boo.txt "

Перечислить файлы в системе в пакетном файле с датой изменения и пустым списком:

for /f "tokens=*" %%A in ('dir /s/b %target%') do @echo %%~tA,"%%~A"

Например, каталог с тремя файлами, включая «boo.txt», выглядит так:

, "C:\rcs\boo.txt "
02/03/2011 17:48, "C:\rcs\foo1.txt"
02/03/2011 17:47, "C:\rcs\foo2.txt"

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

Взгляните на filelist.exe из [http://www.jam-software.com/freeware/]. Эта программа создает расширенный список (гораздо больше точек данных), но не упирается в такие атрибуты, как дата.

Удалить легко, переименовать сложнее.

Следующий инструмент переименовал boo.txt в boo.txt.

http://wren.adoxa.cjb.net

wren.exe boo~1.txt boo.txt

позаботился о имени файла.

Примечание. Похоже, что у Wren есть 16- и 32-битные версии - я использовал 16-битную для выполнения переименования и был вынужден переименовать его в имя файла 8.3. Вы должны уметь обойти это.