最近要寫Xcopy指令,讓分店人員透過執行bat檔,從FTP複製資料至分店筆電的桌面上。
其中,遇到的問題是分店有些是WIN XP,有些則是WIN 7,以致桌面的資料夾名稱有些是"桌面",有些則是"Desktop",但由於分店人員較無法判斷作業系統為何?所以我能想得到的就是直接於一個bat檔中直接寫上兩行。
XCOPY 來源路徑 %USERPROFILE%\桌面 /E /I
XCOPY 來源路徑 %USERPROFILE%\Desktop /E /I
但是這樣就會變成WIN 7的桌面名稱是Desktop,卻會新增桌面資料夾,然後進行複製。
反之,WIN XP則會新增Desktop資料夾,然後進行複製。
想請教位前輩,有無辦法能避免上述情形,因為我要的只是備份資料到真的桌面上就好,感恩。
(P.S)為何不直接複製於C或D槽,C槽是因為分店都僅有user權限,D槽則是因為前人都沒分割,到我接手處理的時候才有割。
看看行不行
@echo off
SETLOCAL
FOR /F "usebackq" %%f IN (`PowerShell -NoProfile -Command "Write-Host([Environment]::GetFolderPath('Desktop'))"`) DO (
SET "DESKTOP_FOLDER=%%f"
)
XCOPY 來源路徑 %DESKTOP_FOLDER%