2009-02-17 51 views
0

在windows上,我試圖使用%〜f1參數獲取文件名。從批處理腳本中讀取參數的問題

我正在從我添加到上下文菜單的新語音(命令)中執行此操作。

在Windows註冊表中,語音只是調用批處理腳本,通過這種方式打印文件名, :

`C:\script.bat %~f1` 

,但我得到這樣的輸出:

`C:\Documents and Settings\Administrator\Desktop\%~f1` 

如此,路徑沒問題,但是文件名呢?!

對此提出建議?謝謝!

+0

蝙蝠的內部會很好。 – 2009-02-17 13:58:23

回答

2

當觸發的上下文菜單項,就這樣通過瀏覽器(不cmd.exe的)和瀏覽器做不執行%〜F1。因此你得到當前的結果。

你需要的是修改你的腳本,以便它接收整個文件名(你可能只在註冊表中放置'C:\ script.bat%1'或'C:\ script.bat')並更新你的腳本使用%〜f1:

@echo first argument: %1 
@echo filename only: %~f1 
@notepad %~f1 

祝你好運!

+0

如果你直接調用它,你可能會想把參數用引號括起來,例如'C:\ script.bat「%1」',否則文件名中的空格可能會混淆。 – 2009-02-17 14:19:21

0

嘗試將整個變量括在%的位置。

C:\script.bat %~f1%