Изменить на букву диска
Чтобы изменить конкретную букву диска, когда в каталоге командной строки используется буква диска, отличная от той, на которую нужно изменить, просто используйте /D
параметр с командой CD (например CD /D <DriveLetter>:
), чтобы изменить другую букву диска перед выполнением последующих команд.
Delims
Вы должны опустить с помощью delims="
в FOR цикле, как рассказывает, что пространство не является ограничителем, который не то, что вы хотите, чтобы предотвратить эту cr/cr/lf
проблему в соответствии с LotPings комментарий.
FOR /?
delims=xxx - specifies a delimiter set. This replaces the default delimiter set of space and tab.
Так как в нем указывается заданный по умолчанию разделитель пробелов и табуляция, когда вы ставите delims="
точно так же, как конечную двойную кавычку после знака равенства ="
, это говорит о том, что в настоящее время разделителей нет.
компактный
Поскольку Compact работает с файлами в каталоге без указания пути в аргументе, если это применимо, вы можете сначала CD /D <Letter>:
запустить, а затем запустить, Compact /C
чтобы сжать все файлы в каталоге или Compact /C /S
рекурсивно сжать все файлы и папки в каталоге.
Пакетный скрипт
for /f "skip=1" %%x in ('wmic logicaldisk get caption') do ( CD /D %%x Compact /C /S <Next or other command> )
Примечание. Буква диска указана в
<letter>:
формате, напримерH:
. ТакCD /D H:
работает просто отлично. Очевидно, вы добавите в\
конец итерированного,%%x
то есть,%%x\
если вам нужно добавить путь, чтобы использовать полный путь (%%x\folder\path
) в качестве аргумента команды, напримерdir %%x\folder\path
.
Дополнительные ресурсы
-
Key /D : change the current DRIVE in addition to changing folder.
-
Key /C Compress the specified files. Directories will be marked so that files added afterward will be compressed. /S Perform the specified operation on files in the given directory and all subdirectories. Default "dir" is the current directory.
Мне нужен .bat для compact.exe и игнорирование типов файлов?