2017-08-07 177 views
0

我是在一個批處理文件試圖這樣(非常基本的)命令批處理文件變量替換

takeown.exe /F c:\WINDOWS\SYSTEM32\%1% 
ICACLS C:\WINDOWS\SYSTEM32\%1% /grant MY\PC:F 

;當我從一個管理員運行CMD提示符:

c:\Data>takeownscript.bat drivers\netbio.sys 

它拋出一個錯誤他說:

C:\數據> takeown.exe/F C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ netio.sys

SUCCESS:用戶「MY \ PC」擁有的文件(或文件夾):「c:\ WINDOWS \ SYSTEM32 \ drivers \ netio.sys」 。

C:\數據> ICACLS C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ netio.sysF C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ netio.sysF:系統找不到指定的 文件。成功處理0個文件;處理失敗1 文件

如何/爲什麼F被追加到驅動程序路徑?我懷疑我沒有使用正確的替換語法。

+2

批處理文件的參數應該使用'%1'來引用,而不是'%1%',如本[問題]中所述(https://stackoverflow.com/questions/14286457/using-parameters-in-批處理文件 - 在-DOS命令行)。 – Laf

+0

@Laf的工作。請考慮這個查詢解決! – Zoso

回答

0

剛剛完成,所以社區知道有一個答案。


命令行參數被用作%nn表示參數)在一個批處理文件。

另一件需要注意的事情是應該始終使用%~1%~1去掉%1的引號。請注意,這不起作用:%~yourVariable%