Как я могу архивировать несколько файлов без расширения файла origin?

Я пытаюсь запаковать несколько файлов, но постоянно с этой проблемой, что мой код не работает для. Вот такой код:

for /r %%X in (*) do "c:Program Files-Zipz.exe" a "%%X.7z" "%%X"

Я пытаюсь 7z несколько файлов в Каталоге, но я продолжаю получать мои файлы в формате, таком как " Foobar.формат txt.7z " но вместо этого я хотел бы, чтобы это был "Foobar.7z " у меня есть тысячи файлов, и я знаю, что это будет легко исправить, я просто не знаю, как.

8
задан DavidPostill
04.04.2023 16:23 Количество просмотров материала 3571
Распечатать страницу

2 ответа

я продолжаю получать мои файлы в формате, как " Foobar.формат txt.7z"

for /r %%X in (*) do "c:\Program Files-Zipz.exe" a "%%X.7z" "%%X"

вам нужно удалить расширение из %%X. Это можно сделать с помощью выражения %%~nX:

for /r %%X in (*) do "c:\Program Files-Zipz.exe" a "%%~nX.7z" "%%X"

однако, если вы сделаете это, у вас может возникнуть проблема, если есть несколько файлов с тем же именем, но разными расширениями. Например, в моем тестовом каталоге у меня есть файлы со следующими именами:

> dir /b test.*
test.cmd
test.ps1
test.sh
test.txt

использование следующего в пакете файл:

for /r %%X in (*) do "c:\Program Files-Zipz.exe" a "%%~nX.7z" "%%X"

произведет следующее для вышеуказанных файлов:

"c:\Program Files-Zipz.exe" a "test.7z" "F:\test\test.cmd"
"c:\Program Files-Zipz.exe" a "test.7z" "F:\test\test.ps1"
"c:\Program Files-Zipz.exe" a "test.7z" "F:\test\test.sh"
"c:\Program Files-Zipz.exe" a "test.7z" "F:\test\test.txt"

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

из командной строки можно заменить %% С % следующим образом:

for /r %X in (*) do "c:\Program Files-Zipz.exe" a "%~nX.7z" "%X"

Читать Далее

1
отвечен DavidPostill 2023-04-06 00:11

вы указываете полное имя файла .7z расширение в вашей команде. Давайте прекратим это делать:

for /r %X in (*) do "c:\Program Files-Zipz.exe" a "%~nX" "%X"

пояснение: Вы используете переменные DOS. % X является переменной. Существуют различные варианты DOS для управления переменными. "~N " выражает имя файла из переменной без расширения.

от:https://www.computerhope.com/forhlp.htm

%~nI разворачивает %I только до имени файла

1
отвечен HackSlash 2023-04-06 02:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх