你的貼圖內容, 是問 ChatGPT 之類的東東而產生後的內容嗎? 真是讓我…… ( 是用怎樣的 prompt? )
建議你還是乖乖學 batch-script 或 PowerShell-script 。
( 剛剛隨便翻了下, 你可以看看 DOS 不死 :: 2010 iT 邦幫忙鐵人賽 , 先有個基礎概念; 若想看點進階的, 私人小推 Windows CMD Shell How-to guides and examples 。 )
以下,給你個參考:
( 一堆註解是因為從你的貼圖感覺你好像連基礎都有問題, 就通通寫上去。 )
@rem ## echo off: 關掉命令的顯示;
@echo off
rem ## 設定複製的來源路徑給 mySrcPath 變數;
set "mySrcPath=\\path\to\source\folder"
rem ## 設定複製的目的路徑給 myDstPath 變數;
set "myDstPath=\\path\to\destination\folder"
rem ## 如果 myDstPath 變數的路徑不存在時;
if not exist "%myDstPath%" (
rem ## 用 xcopy 把 mySrcPath 變數的路徑之內容拷貝至 myDstPath 變數的路徑之內;
xcopy "%mySrcPath%" "%myDstPath%" /S /E /H /I
rem ## 用 start 以新視窗 "runSetup" 執行 "%myDstPath%\setup.bat";
start "runSetup" /WAIT "%myDstPath%\setup.bat"
) else (
rem ## 提示 「myDstPath 變數的路徑已存在,略過拷貝作業;」
echo [%myDstPath%] exist, pass the copying;
)
rem ## 提示結束;
echo Done;
另, 因為 start
命令在不用 "title"
選項 ( 程式碼的 "runSetup"
) 的時候, 若後面的 [command/program]
用上 "
含括時會被誤判, 所以我習慣加上 "title"
以避免誤判。
順便加贈 PowerShell 版本:
( PowerShell 基礎腳本編輯可使用 Windows 內建的 Windows PowerShell ISE; 只是要注意 Win-PS-ISE 被宣告只支援到 Win-PS-v5.1 , 往後不會支援新版的 PS 功能。 )
## 設定複製的來源路徑給 mySrcPath 變數;
$mySrcPath = '\\path\to\source\folder'
## 設定複製的目的路徑給 myDstPath 變數;
$myDstPath = '\\path\to\destination\folder'
## 如果 myDstPath 變數的路徑不存在時;
if(-not(Test-Path -Path $myDstPath)){
## 用 xcopy 把 mySrcPath 變數的路徑內容拷貝至 myDstPath 變數的路徑內;
xcopy "$mySrcPath" "$myDstPath" /S /E /H /I
## 用 Start-Process 以新程序執行 "${myDstPath}\setup.bat";
Start-Process "${myDstPath}\setup.bat" -Wait
}else{
## 提示 「myDstPath 變數的路徑已存在,略過拷貝作業;」
Write-Host "[${myDstPath}] exist, pass the copying;"
}
## 提示結束;
Write-Host "Done;"
請善用 程式碼與語法高亮標記 - iT邦幫忙 的 Markdown ;
不然, 至少, 編輯區工具列, 有個 新增程式碼 (Ctrl-Alt-C)
能用。
( 程式碼區塊
亦可用以存放各種文字資料, 以方便他人閱覽。 )
iThelp-Markdown 的語法高亮之自動識別時常錯判, 建議用下面方式 (bat
) 指定語言:
```bat
echo hello, world
```
如開頭所說,我是語法新手,因為有需求使用,所以才爬文,並非直接用CHATGPT貼來問,所以內容很亂。
但也感謝你的回覆,還是得多學一點batch來解決問題的處理。
@ MIS小菜雞 :
因為看到腳本有設定變數值, 後面卻不使用變數值而使用字串, 感到很神奇, 謝謝解惑~ 祝學習順利~