TOP

2020年9月23日 星期三

執行 batch file 時切換當前目錄至檔案所在目錄

問題描述:

VMDK 所在目錄下透過檔案總管右鍵執行 _shrink.bat 時會出現錯誤。

_shrink.bat 內容為:

"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -k "Windows 7 x64.vmdk"

"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -k "VmDisk256G.vmdk"

echo. & pause

=> 它使用 vdiskmanager.exe 對目前目錄下的 VMDK 執行壓縮

 


執行結果:

 

 

 

 

解決方法#1

=> 以管理者權限執行可解決上面問題

但以管理者權限執行後又有新問題:找不到要壓縮的 vmdk file

 

注意到 current directory 是在 c:\Windows\system32, 因此要先設法切換路徑至 batch file 所在目錄。

參考:

https://stackoverflow.com/questions/4419868/what-is-the-current-directory-in-a-batch-file

=> cd /d %~dp0 , 此指令可切至 batch file 所在的目錄

 

 

解決方法#2

_shrink.bat 在第一行加入切換路徑的指令即可解決此問題:cd /d %~dp0

cd /d %~dp0

"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -k "Windows 7 x64.vmdk"

"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -k "VmDisk256G.vmdk"

echo. & pause

 

 

 

結語/心得:

batch file 使用時:

[1] 使用 administrator 權限執行

[2] 確認執行目錄,視需要將目錄切至合適的位置

 

沒有留言:

張貼留言