1樓:匿名使用者
也可以:
call set c=%%a:~0,%b%%%
2樓:我還是託
setlocal enabledelayedexpansion
set c=!a:~0,%b%!
3樓:匿名使用者
c#語言有兩個函式--一個賦值函式(get),一個取值函式(set),這從它生成的中間語言**可以清晰地看到。c#不提倡將域的保護級別設為public而使使用者在類外任意操作--那樣太不oo,或者具體點說太不安全!對所有有必要在類外可見的域,c#推薦採用屬性來表達。
屬性不表示儲存位置,這是屬性和域的根本性的區別。下面是一個典型的屬性設計:
using system;
class myclass
}class test
}一如我們期待的那樣,程式輸出0 1。我們可以看到屬性通過對方法的包裝向程式設計師提供了一個友好的域成員的存取介面。這裡的value是c#的關鍵字,是我們進行屬性操作時的set的隱含引數,也就是我們在執行屬性寫操作時的右值。
屬性提供了只讀(get),只寫(set),讀寫(get和 set)三種介面操作。對域的這三種操作,我們必須在同一個屬性名下宣告,而不可以將它們分離,看下面的實現:
class myclass
public string name
}上面這種分離name屬性實現的方法是錯誤的!我們應該像前面的例子一樣將他們放在一起。值得注意的是三種屬性(只讀,只寫,讀寫)被c#認為是同一個屬性名,看下面的例子:
class myclass}}
class myclassderived: myclass}}
class test
}我們可以看到myclassderived中的屬性num-get的定義。
當然屬性遠遠不止僅僅限於域的介面操作,屬性的本質還是方法,我們可以根據程式邏輯在屬性的提取或賦值時進行某些檢查,警告等額外操作,看下面的例子:
class myclass}}
由於屬性的方法的本質,屬性當然也有方法的種種修飾。屬性也有5種存取修飾符,但屬性的存取修飾往往為public,否則我們也就失去了屬性作為類的公共介面的意義。除了方法的多引數帶來的方法過載等特性屬性不具備外, virtual, sealed, override, abstract等修飾符對屬性與方法同樣的行為,但由於屬性在本質上被實現為兩個方法,它的某些行為需要我們注意。
看下面的例子:
abstract class a
public virtual int y
public abstract int z
}class b: a
public override int y
public override int z
}這個例子集中地展示了屬性在繼承上下文中的某些典型行為。這裡,類a由於抽象屬性z的存在而必須宣告為abstract。子類b中通過base關鍵字來引用父類a的屬性。
類b中可以只通過y-set便覆蓋了類a中的虛屬性。
靜態屬性和靜態方法一樣只能存取類的靜態域變數。我們也可以像做外部方法那樣,宣告外部屬性。
批處理中set /a和set /p有什麼區別,一般怎麼用?謝謝回答!
4樓:睿之銳
在 set 命令中新增了兩個新命令列開關:
set /a expression
set /p variable=[promptstring]/a 命令列開關指定等號右邊的字串為被評估的數字表示式。該表示式評估器很簡單並以遞減的優先權順序支援下列操作:
() - 分組! ~ - - 一元運算子* / % - 算數運算子+ - - 算數運算子<< >> - 邏輯移位- 按位「與」
^ - 按位「異」
| - 按位「或」
= *= /= %= += -= - 賦值&= ^= |= <<= >>=
, - 表示式分隔符如果您使用任何邏輯或取餘操作符, 您需要將表示式字串用引號擴起來。在表示式中的任何非數字字串鍵作為環境變數名稱,這些環境變數名稱的值已在使用前轉換成數字。如果指定了一個環境變數名稱,但未在當前環境中定義,那麼值將被定為零。
這使您可以使用環境變數值做計算而不用鍵入那些 % 符號來得到它們的值。如果 set /a 在命令指令碼外的命令列執行的,那麼它顯示該表示式的最後值。該分配的操作符在分配的操作符左邊需要一個環境變數名稱。
除十六進位制有 0x 字首, 八進位制有 0 字首的,數字值為十進位數字。因此, 0x12 與 18 和 022
相同。請注意八進位制公式可能很容易搞混: 08 和 09 是無效的數字,
因為 8 和 9 不是有效的八進位制位數。
/p 命令列開關允許將變數數值設成使用者輸入的一行輸入。讀取輸入行之前,顯示指定的 promptstring。promptstring 可以是空的。
5樓:棟玉蓉弓琴
set/p
的作用是這個變數要求使用者輸入來賦值的
set/p
s=請輸入你要顯示的內容:
echo 我是變數s的值"%s%"
pause
這個批處理就是顯示你輸入,變數s的值是你是輸入的內容.
set/a是運算子變數,就是數字的加減乘除運算的變數setk=5
set/a
k=%k%+2
echo
我是變數k的值"%k%"
pause
這個批處理就是在變數k的值5基礎上加2所以最終變數k值為7也可以這樣寫
setk=5
set/a
h=%k%+2
echo 我是變數h的值"%h%"
set/a
k+=2
echo 我是變數k的值"%k%"
pause
這個批處理中的set
/ak+=2相當於set
/ak=%k%+2
6樓:
記住 set /a 執行數學計算
set /p 提示使用者輸入
比如 set /p a=輸入:
然後視窗提示 輸入:
輸入完後 按回車
你要例項啊?
好@echo off
set /p b=輸入一個數字:
echo %b%
set /a a=2*%b%
echo %b%+%b%=%a%
pause>nul
7樓:
set a=1
:start
echo %a%
if %c%==0 (echo 172.19.5.%a% >>ip.txt)
set /a a=%a%+1
if %a%==255 exit
goto :start
這是一個用set的例子,你自己看看吧.
它的功能是從172.19.5.1開始到172.19.5.255每一個都ping一次,然後把能ping到的ip寫入ip.txt
你可以試著把set a=改成set /a a=
或者反過來,看看還能不能正常執行.. \
/p 是讓你輸入
/a 是指定一個變數等於一串運算字元,
什麼引數也沒有是讓一個變數等於一串普通字元.
批處理中%和%%的用法有哪些
8樓:她是我的小太陽
1.如果是 %a% 這種形式 ,就是變數的引用
@echo off
set a=123 rem定義一個變數a 賦值為123
echo %a% rem顯示出變數a的值(如果不加% %系統會把a當字元處理了,不會當成變數的)
2.%%i 這種變數是for 語句裡面 特有的變數(還有一種是外部變數,接受外部引數的格式是%1 -%9 共9個變數),只有在批處理裡面才寫 兩個 %% 號表示變數,cmd中只用 一個 % 號。反正只要你在批處理檔案裡面用 for,變數就用 %%。
例如批處理中的寫法
for %%i in (1 2 3 4 5 ) do echo %%i
為什麼批處理中用兩個 %%,其實是編譯器編譯的時候要遮蔽一個%
在cmd視窗中寫法
for %i in (1 2 3 4 5 ) do echo %i
3.現在說下外部變數,是系統制定的,只有9個,專門儲存外部引數的,就是執行批處理時加的引數。只有 %1 %2 %3 %4 ...... %9
例如 @echo off
echo %1
echo %2
echo %3
echo %4
將上面的**複製到記事本。儲存格式為 bat
現在怎樣傳遞引數給這個批處理,如下
在開始》執行 裡面輸入 cmd 確定
在彈出來的視窗中 輸入 上面 批處理檔案 的 完全路徑名,然後就加要傳遞的引數了 例如 c:\text.bat aaaa bbbb cccc dddd eeeee
上面 aaaa bbbb cccc dddd eeeee
就是傳遞給 批處理 「引數」這些引數 會儲存在 %1至 %9 這9個變數名,最多隻能儲存 9 個。執行下就知道了,上面批處理檔案中 %1變數儲存的是aaaa
%2 儲存的是 bbbb
%3 儲存的是 cccc
%4 儲存的是 dddd
%5 是 eeee 上面沒有用到 %5變數
9樓:月下吹牛
%0為批處理本身的絕對路徑,%1為第一個引數,以此類推至%9。%%i在for裡面回用到,更多用法請for/?。set/a裡面%%為取餘數,a%%b為a除以b的餘數。
10樓:匿名使用者
看不懂也不要追問了。。。等下坐車回老家了。
@echo off
set a=789
echo %a%
pause
call :str 963
pause
for /l %%l (4,1,6) do (set /p=%%l )pause :str echo %1 goto :eof 11樓:匿名使用者 %是直接用在cmd ui介面的。而%%是寫入cmd檔裡面的。2者效果一致,這是我的經驗。。請高手斧正 12樓:匿名使用者 for /f "delims= usebackq" %%i in ("*.*") do (someting) echo %time:~0,5% start cmd.exe call %0 諸如此類。。 如果不經常出現開機藍屏,關機在開機試試。如果還是不可以,開機按f8不動到高階選項出現在鬆手,選 最近一次的正確配置 回車修復,還不行按f8進入安全模式還原一下系統或重灌系統 如果重灌也是藍屏,建議還是檢修一下去 出現這樣的問題是軟體衝突 驅動不合適 系統問題引起的,可以在安全模式還原一下系統,還是不... 電腦藍屏出現0x0000007b怎麼解決,有以下兩種方法 方法一 當電腦啟動藍屏出現錯誤 0x0000007b時,首先我們將電腦重啟,在開機時不停按啟動熱鍵進入到bios設定頁面,進入頁面後找到 integratedperipherals 選項並回車 進入該頁面後,我們選擇 sataconfigur... 考試加油站 x1 b b 2 4ac 2a x2 b b 2 4ac 2a 解答過程 a 0,兩邊同時除以a得 x 2 b a x c a 0,x 2 b a x c a x 2 b a x b 2 4a 2 b 2 4a 2 c a x b 2a 2 b 2 4ac 4a 2 a 0,4a 2 0...0X0000007B問題怎麼解決
電腦藍屏0x0000007b怎麼解決
ax bx c 0怎麼解這個方程