7zip отделить каталоги от списка сетевых путей

324
phemor

У меня есть. TXT-файл, содержащий 2400 отдельных сетевых путей к каталогам, которые мне нужно 7zip в отдельные зашифрованные файлы .7z.

Я верю, что могу сделать что-то подобное в Power Shell, но до сих пор не получил это работать

dir | ForEach-Object { & "7za.exe" a $_.BaseName $_.Name } 

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

Какие-либо предложения?

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" 
0
В Powershell вы можете передать содержимое файла следующим образом: `gc paths.txt | % {} `. root 6 лет назад 0
Иногда глупое решение является лучшим: скопируйте файл `.txt` в файл` .bat`, запишите макрос в Notepad ++, который массирует строку и пропускает к следующему, и запускайте его 2400 раз. harrymc 6 лет назад 0

1 ответ на вопрос

0
postanote

Так что, может быть, что-то вроде этого, для простого прохода в этом. Есть, конечно, другие способы сделать это.

# Read the file to parse $NetworkPaths = Get-Content -Path 'D:\Temp\NetworkPaths.txt'  # Loop through the list and split off path info to name and zip the files in the path provided ForEach($NetworkPath in $NetworkPaths) { Start-Process -FilePath "C:\Program Files\7-Zip\7z.exe" -ArgumentList "a -tzip D:\Temp\$(($NetworkPath.Split('\'))[-1]).zip $NetworkPath\*.* -r -pSECRET" -Wait}