Alte Office (2003) im Stapelbetrieb zu 2016 konvertieren
Hallo zusammen,
wir hatten hier lange Zeit Office 2003 im Einsatz. Dann zunächst neue PC's mit Office 2016 eingerichtet und nun final alle auf diese neue Version umgestellt. Nun haben wir im Netzwerk ein bunt gemischtes Dateiformat. Die meisten Dokumente sind Office 2003 und einige schon im neuen Format.
Gibt es einen Stapelkonverter mit dem Ich alle alten Dokumente auf das neue Format bekomme oder wie löst man so etwas?
Viele Grüße
pixel24
wir hatten hier lange Zeit Office 2003 im Einsatz. Dann zunächst neue PC's mit Office 2016 eingerichtet und nun final alle auf diese neue Version umgestellt. Nun haben wir im Netzwerk ein bunt gemischtes Dateiformat. Die meisten Dokumente sind Office 2003 und einige schon im neuen Format.
Gibt es einen Stapelkonverter mit dem Ich alle alten Dokumente auf das neue Format bekomme oder wie löst man so etwas?
Viele Grüße
pixel24
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 367912
Url: https://administrator.de/forum/alte-office-2003-im-stapelbetrieb-zu-2016-konvertieren-367912.html
Ausgedruckt am: 23.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar
Servus @pixel24 .
Bitte ab und zu unsere Suche benutzen, die Frage kommt pro Woche drei vier mal, ein Skript dazu habe ich vor kurzem hier gepostet
Doc Dokumente leicht in .docx umwandeln
Grüße Uwe
Bitte ab und zu unsere Suche benutzen, die Frage kommt pro Woche drei vier mal, ein Skript dazu habe ich vor kurzem hier gepostet
Doc Dokumente leicht in .docx umwandeln
Grüße Uwe
Hallo,
Schon klar das da nix gefunden wird, oder?
Warum ist das aufwaendig? Einfach die entstandene Ordnerunterstruktur mit der Maus in die vorhandene Struktur reinziehen geht nicht?
Ich wuerde eher sowieso alles in einer neuen Struktur unter bringen bzw. die ollen Office-Dateien gleich noch loeschen, damit die Nutzer nicht noch die ollen Dateien bearbeiten.
BFF
Ja, habe nach "office stapekonvertierung" gesucht aber nichts gefunden.
Schon klar das da nix gefunden wird, oder?
Wenn ist das richtig verstanden habe liegt bei dem Skript nachher ja alles in einem neuen Unterbaum und ich
müsste es von dort zurück in die Projekt-Struktur verschieben.
Das wäre extrem aufwendig.
müsste es von dort zurück in die Projekt-Struktur verschieben.
Das wäre extrem aufwendig.
Warum ist das aufwaendig? Einfach die entstandene Ordnerunterstruktur mit der Maus in die vorhandene Struktur reinziehen geht nicht?
Ich wuerde eher sowieso alles in einer neuen Struktur unter bringen bzw. die ollen Office-Dateien gleich noch loeschen, damit die Nutzer nicht noch die ollen Dateien bearbeiten.
BFF
Zitat von @pixel24:
Wäre dies auch so zu modifizieren dass das neue konvertierte Dokument einfach an gleicher Stelle liegt wie das alte?
Kein Problem.Wäre dies auch so zu modifizieren dass das neue konvertierte Dokument einfach an gleicher Stelle liegt wie das alte?
Wenn ist das richtig verstanden habe liegt bei dem Skript nachher ja alles in einem neuen Unterbaum und ich müsste es von dort zurück in die Projekt-Struktur verschieben.
Das wäre extrem aufwendig.
?? hä, einfach auf den alten Baum drauf ziehen, dann werden sie an der richtigen Stelle einsortiert, ein Kinderspiel Bei Bedarf passe ich dir aber auch das Skript an deine Bedürfnisse an. => PN
-edit das hier speichert die Dokumente direkt an der gleichen Stelle und entfernt die alten Dokumente gleichzeitig:
Aufrufen mit
.\OfficeDocumentConverter.ps1 "C:\Daten"
<#
Office Document-Format Converter
#>
param(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$foldersource
)
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
# ==== GLOBAL VARS ====
$valid_extensions = '*.xls','*.xlt','*.doc','*.dot','*.ppt','*.pot','*.pps'
$mpar = [System.Reflection.Missing]::Value
# =====================
# enum all office files in source with recursive search
$files = gci $foldersource -Recurse -Force -File -Include $valid_extensions
$files_excel = $files | ?{$_.Extension -match '\.(xls|xlt)$'}
$files_word = $files | ?{$_.Extension -match '\.(doc|dot)$'}
$files_powerpoint = $files | ?{$_.Extension -match '\.(ppt|pot|pps)$'}
# ====== EXCEL ========
if ($files_excel){
write-host "Processing EXCEL Workbooks:" -F White -B Green
# Prepare Excel for conversion
$xl = New-Object -Com Excel.Application
$xl.DisplayAlerts = $false
$xl.Screenupdating = $false
$xl.Visible = $false
$remove = @()
# For each file
foreach($file in $files_excel){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
try{
$wb = $xl.Workbooks.Open($file.Fullname,$false,$true)
# file has macroproject ?
$macroproject = $wb.HasVBProject
$targetformat = '.xlsx'
$format = 51
# determine file extension and set format number
switch($file.Extension){
'.xls' {
$targetformat = @{$true='.xlsm';$false='.xlsx'}[$macroproject]
$format = @{$true=52;$false=51}[($targetformat -like '*m')]
}
'.xlt' {
$targetformat = @{$true='.xltm';$false='.xltx'}[$macroproject]
$format = @{$true=53;$false=54}[($targetformat -like '*tm')]
}
}
# new filename
$targetfile = Join-Path $file.Directory.Fullname
($file.Basename + $targetformat)
# Save file as new format
$wb.SaveAs($targetfile,$format) | out-null
if (Test-Path $targetfile){write-host 'OK.' -F Green}
$remove += $file
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close workbook
if ($wb){$wb.Close($false) | out-null}
}
}
# Quit Excel and tidy up
$xl.DisplayAlerts = $true
$xl.Screenupdating = $true
$xl.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($xl) | out-null
$remove | remove-item -Force
}
# ====== WORD ========
if ($files_word){
write-host "Processing WORD documents:" -F White -B Green
# Prepare Word for conversion
$word = New-Object -Com Word.Application
$word.DisplayAlerts = 0
$word.Screenupdating = $false
$word.Visible = $false
# Array which hold files to delete afterwards
$remove = @()
# For each file
foreach($file in $files_word){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
try{
$doc = $word.Documents.Open($file.Fullname,$false,$true)
# file has macroproject ?
$macroproject = $doc.HasVBProject
$targetformat = '.docx'
$format = 12
# determine file extension and set format number
switch($file.Extension){
'.doc' {
$targetformat = @{$true='.docm';$false='.docx'}[$macroproject]
$format = @{$true=13;$false=12}[($targetformat -like '*m')]
}
'.dot' {
$targetformat = @{$true='.dotm';$false='.dotx'}[$macroproject]
$format = @{$true=15;$false=14}[($targetformat -like '*tm')]
}
}
# new filename
$targetfile = Join-Path $file.Directory.Fullname
($file.Basename + $targetformat)
# Save file as new format
$doc.SaveAs2([ref][system.object]$targetfile,[ref]$format)
if (Test-Path $targetfile){write-host 'OK.' -F Green}
$remove += $file
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close document
if ($doc -ne $null){$doc.Close($false)}
}
}
# Quit Word and tidy up
$word.DisplayAlerts = -1
$word.Screenupdating = $true
$word.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($word) | out-null
$remove | remove-item -Force
}
# ====== POWERPOINT ========
if ($files_powerpoint){
write-host "Processing POWERPOINT presentations:" -F White -B Green
# Prepare Word for conversion
$pp = New-Object -Com Powerpoint.Application
$pp.DisplayAlerts = 1
$remove = @()
# For each file
foreach($file in $files_powerpoint){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
try{
$presentation = $pp.Presentations.Open($file.Fullname,$true,$mpar,0)
# file has macroproject ?
$macroproject = $presentation.HasVBProject
$targetformat = '.pptx'
$format = 12
# determine file extension and set format number
switch($file.Extension){
'.ppt' {
$targetformat = @{$true='.pptm';$false='.pptx'}[$macroproject]
$format = @{$true=25;$false=24}[($targetformat -like '*m')]
}
'.pot' {
$targetformat = @{$true='.potm';$false='.potx'}[$macroproject]
$format = @{$true=27;$false=26}[($targetformat -like '*tm')]
}
'.pps' {
$targetformat = @{$true='.ppsm';$false='.ppsx'}[$macroproject]
$format = @{$true=29;$false=28}[($targetformat -like '*sm')]
}
}
# new filename
$targetfile = Join-Path $file.Directory.Fullname
($file.Basename + $targetformat)
# Save file as new format
$presentation.SaveAs([ref][system.object]$targetfile,[ref]$format)
if (Test-Path $targetfile){write-host 'OK.' -F Green}
$remove += $file
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close presentation
if ($presentation){$presentation.Close() | out-null}
}
}
# Quit Powerpoint and tidy up
$pp.DisplayAlerts = 2
$pp.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($pp) | out-null
$remove | remove-item -Force
}