7za.exe
является автономной версией 7-Zip, которая не требует дополнительных DLL.
С 7za.exe
хранятся всегда в том же каталоге, что и пакетный файл, я предлагаю использовать:
"%~dp0\7za.exe" a -tzip "\\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Target\Archival_%DD%_%MM%_%YYYY%_%HH%_%MN%.zip" "\\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Intermediate"
%~dp0
заменяется интерпретатор командной строки на выполнение пакетного файла на диск и путь командного файла заканчивающийся обратным слэшем. Запустив в окне командной строки call /?
, справка этой команды выводится с объяснением %~dp0
. Это полезно, если текущий рабочий каталог при исполнении командного файла отличается от каталога пакетного файла и 7za.exe
.
Запустив командный файл из окна командной строки и с первой строкой, измененной с @echo off
на @echo on
, если она вообще присутствует, можно увидеть, что делает интерпретатор командной строки.
Далее каждая модификация переменных среды в пакетном файле видна только для командного файла и всех приложений, запущенных из этого командного файла. Windows создает при выполнении пакетного файла копию таблицы переменных окружения для командного интерпретатора. Поэтому изменение PATH, как предложено npocmaka, абсолютно безопасно, так как только локальная копия изменена в PATH, а не системная переменная PATH.
если 7za находится в том же каталоге, что и текущий каталог сценариев/консолей. Хотя изменение пути в скрипте повлияет только на текущий сеанс cmd. В чем проблема использования 'SET PATH =% PATH%; c: \ something'? – npocmaka
Файл 7za.exe и командный скрипт присутствуют в одном месте. :(Может ли быть так, что команда 7zip не работает из-за общей среды? – theitpushover
Возможно, что '7za.exe' нуждается в некоторых DLL-файлах или подобном из своего домашнего каталога (у меня его нет на моей текущей машине check) .Или включить их в текущий каталог или, если вы не хотите постоянно изменять «PATH», вы можете использовать 'setlocal' перед этим, поэтому изменения применяются только в пакетном файле. – TripeHound