解決方案

解決方案

我正在編寫一個短批處理程序來移動一些快捷方式。

問題是 Windows 返回「找不到指定的檔案」。

我想這是因為它要么被視為系統檔案(認為用戶帳戶控制小級別的“系統”),要么它是隱藏的,即使您不必dir /a在目錄列表中顯示它。

我需要在這裡改變什麼?檔案名稱/路徑都是正確的,因為我是直接從 Windows 資源管理器複製它們的。

cd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System
mkdir Settings
cd C:\ProgramData\Microsoft\Windows\Start Menu
dir
move "Default Programs.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\System\Settings"
pause

答案1

解決方案

問題出在下面這行程式碼:

move "Default Programs.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\System\Settings"

正如@Scott 指出的,目標路徑是錯誤的。尤其:

Start Menu\System

該部分應為:

Start Menu\Programs\System

評論

即使你能夠解決問題,還有其他事情值得一提。

更改目前資料夾

cd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System

如果您所在的驅動器不是C:

D:\>cd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System

D:\>mkdir Settings

在上面的範例中,Settings將在磁碟機的根目錄中建立該資料夾D:。為了避免這種情況,請使用以下/d參數:

cd /d C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System

當啟用命令擴充時,該cd命令不會將空格視為分隔符號(預設情況下是這樣)。無論如何,使用引號是個好主意:

cd /d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System"

C:不過,該資料夾可能根本不會儲存在磁碟機上。您可以使用%ProgramData% 環境變數它是隨 Windows Vista 引入的:

cd /d "%programdata%\Microsoft\Windows\Start Menu\Programs\System"

在早期的作業系統中,您可能會使用%AllUsersProfile%它。變數名不區分大小寫。

建立資料夾

mkdir Settings

為了節省打字,您可以使用md

md Settings

與指令不同cdmkdirandmd將空格視為分隔符號。假設您執行以下命令:

md Some settings

在本例中,將建立兩個資料夾:Somesettings。如果您打算建立一個名為的資料夾,Some settings則需要使用引號。為了保持一致性,我建議始終使用引號;即使它們不是強制性的:

md "Settings"

您也可以指定完整路徑,如下所示:

md "%programdata%\Microsoft\Windows\Start Menu\Programs\System\Settings"

System和子資料夾Settings通常不存在,並且都會一次建立。

進一步閱讀

答案2

始終引用路徑。名稱中帶有空格的路徑必須用引號引起來。

用這個 :

cd "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System"
mkdir Settings
cd "C:\ProgramData\Microsoft\Windows\Start Menu"
dir
move "Default Programs.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\System\Settings"
pause

相關內容