2014-01-15 14 views
1

我試圖找到一種方法來發布我面臨的腳本。我用短腳本模擬了我的問題,因此不需要閱讀長代碼。批處理 - 將參數設置爲變量,但不解析參數內部的最終變量

基本上我想要/需要實現的是以參數開始我的批處理,並以與腳本用戶定義的方式一樣的方式處理參數,但用換碼符替換百分號後跟百分號(%> ^% )。但是問題來了,如果參數包含類似%日期%存在的一些變量

這裏是我的代碼的短版:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
set "x=%~1" 
set "y=!x:%%=^^%%!" 
echo %y% 

參數可以包含任何東西,但也可以看看如下:

script.bat "this should be just plain text - %date%" 

我預計從批處理腳本輸出會是這樣:

this should be just plain text - ^%date^% 

^h無論如何,它似乎立即解決變量,儘管百分號甚至沒有逃脫,因爲它找不到任何。如果參數不包含它的工作原理以及任何變量,但這種方式輸出是這樣的:

this should be just text - Wed 01/15/2014 

我試圖避免任何額外的腳本語言的使用(如VBS)和使用任何其他應用程序,而是會有VBS方式例如沒什麼。 任何幫助,協助或暗示如何實現這一點將非常感激。

回答

0

當您撥打script.bat時,%date%變量正在擴展 - 因此在您的腳本%1中已經有擴展的%date%變量。調用腳本時必須添加插入符號 -

script.bat "this should be just plain text - ^%date^%" 
+0

感謝您的評論。我這麼認爲,但只是希望找到一些解決方法來緩解這種需求。 –

相關問題