我正在編寫一個短批處理程序來移動一些快捷方式。
問題是 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
與指令不同cd
,mkdir
andmd
將空格視為分隔符號。假設您執行以下命令:
md Some settings
在本例中,將建立兩個資料夾:Some
和settings
。如果您打算建立一個名為的資料夾,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