将bat脚本转换为ps1脚本

问题描述 投票:0回答:1

我有以下批处理文件。

@echo off
@echo Kopiere Autodesk-Profil ins Homeverzeichnis (H:\)...
@rmdir /s /q "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\"
@xcopy /s /y "%APPDATA%\Autodesk\Autodesk AutoCAD Map 3D 2021\*.*" "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\*.*"
cscript dialogfenster.vbs "AutoCAD-Einstellungen gesichert"
exit

它将数据从取决于用户的路径(用户可以更改,因此必须是变量)复制到目录“H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021”中。现在我必须将此代码转换为 .ps1 文件。 我现在在人工智能的部分帮助下尝试了这一点,并得到了以下结果。

> # Löscht den Ordner und alle seine Inhalte, ohne eine Bestätigung zu fordern
Remove-Item -Path "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\" -Recurse -Force -ErrorAction SilentlyContinue

# Kopiert alle Dateien und Unterordner aus dem Quellverzeichnis in das Zielverzeichnis
Copy-Item -Path "$env:APPDATA\Autodesk\Autodesk AutoCAD Map 3D 2021\*" -Destination "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\" -Recurse -Force

# Führt ein VBScript aus und zeigt möglicherweise ein Dialogfenster an
& cscript //NoLogo "dialogfenster.vbs" "AutoCAD-Einstellungen gesichert"

# Skriptende
exit

不幸的是,这无法正常工作,这可能是由于 Copy-Item -Path "$env:APPDATA\Autodesk\Autodesk AutoCAD Map 3D 2021*" 这部分无法访问用户

powershell environment-variables copy-item
1个回答
0
投票

最有可能:

您正在使用

Copy-Item
移动目录
H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\
中的内容。
但是您确实使用第一个命令删除了该目录:因此复制失败,因为 cmdlet 找不到目标,因为它本身没有创建目标。

只需使用

Remove-Item -Path "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\*" -Recurse -Force -ErrorAction SilentlyContinue
,这样它只会删除目录的内容,而不是目录本身。

替代方案:复制目录本身,而不仅仅是内容:

Remove-Item -Path "H:\Downloads\Temp_Autodesk\Autodesk AutoCAD Map 3D 2021\" -Recurse -Force -ErrorAction SilentlyContinue

Copy-Item -Path "$env:APPDATA\Autodesk\Autodesk AutoCAD Map 3D 2021" -Destination "H:\Downloads\Temp_Autodesk\" -Recurse -Force
© www.soinside.com 2019 - 2024. All rights reserved.