關於windows下的dos批處理我雖然使用的不多,但是有限的幾個熟悉的命令倒也使用的不少。在一些使用受到很多限制的windows電腦上,我時常會通過bat檔案實現其他指令碼語言或者程式提供給使用者的工具介面。
#!/usr/binpython
import sys
def touch(file_name):
fid =open(file_name,'w')
fid.close()
create_*** = false
for each_file in sys.argv:
if create_***:
touch(each_file)
else:
create_***= true
其中,create_***使用的目的是避開第乙個傳入引數。因為第乙個傳入引數是本身。
指令碼測試的過程:
e:\workspace\01_程式語言\03_python\demos>dir
驅動器 e 中的卷沒有標籤。
卷的序列號是 2013-5089
e:\workspace\01_程式語言\03_python\demos 的目錄
2017/05/18 23:52 .
2017/05/18 23:52 ..
2017/05/08 19:15 518 add_dir.py
2017/03/29 21:00 python_exp01
2017/03/29 21:02 python_exp02
2017/04/03 09:23 python_exp03
2017/05/18 23:47 python_exp04
2017/04/12 22:16 python_exp05
2017/05/07 18:53 python_exp06
2017/05/08 19:17 python_exp07
2017/05/08 19:52 python_exp08
2017/05/18 23:52 214 touch.py
2個檔案 732 位元組
10個目錄77,768,101,888 可用位元組
e:\workspace\01_程式語言\03_python\demos>python touch.py 1.c2.c 3.c
e:\workspace\01_程式語言\03_python\demos>dir
驅動器 e 中的卷沒有標籤。
卷的序列號是 2013-5089
e:\workspace\01_程式語言\03_python\demos 的目錄
2017/05/18 23:52 .
2017/05/18 23:52 ..
2017/05/18 23:52 0 1.c
2017/05/18 23:52 0 2.c
2017/05/18 23:52 0 3.c
2017/05/08 19:15 518 add_dir.py
2017/03/29 21:00 python_exp01
2017/03/29 21:02 python_exp02
2017/04/03 09:23 python_exp03
2017/05/18 23:47 python_exp04
2017/04/12 22:16 python_exp05
2017/05/07 18:53 python_exp06
2017/05/08 19:17 python_exp07
2017/05/08 19:52 python_exp08
2017/05/18 23:52 214 touch.py
5個檔案 732 位元組
10個目錄77,768,101,888 可用位元組
通過上面的結果可以看出,使用指令碼可以實現新文字檔案的批量建立。但是每次都使用這個命令才進行這種操作還是有些麻煩,因為每次我們都需要增加乙個python字元的輸入。為了能夠實現隨時呼叫,寫乙個批處理檔案並將其放到windows可以尋找到的path目錄中。
先說一下初期我使用的批處理指令碼,最初的使用批處理檔案中只有一句:
@python dir/touch.py %1
其中,%1的含義是輸入的第乙個引數,而dir則是指令碼所在的實際目錄。這樣,可以做如下測試:
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:01 .
2017/05/19 00:01 ..
0個檔案 0 位元組
2個目錄78,496,571,392 可用位元組
c:\users\thinkpad\desktop\demo>touch 1.c
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:02 .
2017/05/19 00:02 ..
2017/05/19 00:02 0 1.c
1個檔案 0 位元組
2個目錄78,496,571,392 可用位元組
c:\users\thinkpad\desktop\demo>touch 1.c 2.c
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:02 .
2017/05/19 00:02 ..
2017/05/19 00:02 0 1.c
1個檔案 0 位元組
2個目錄78,496,571,392 可用位元組
c:\users\thinkpad\desktop\demo>touch 2.c 3.c
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:02 .
2017/05/19 00:02 ..
2017/05/19 00:02 0 1.c
2017/05/19 00:02 0 2.c
2個檔案 0 位元組
2個目錄78,496,571,392 可用位元組
通過這樣的方法實現乙個引數的傳入是十分簡單的,但是弊端是對於多餘乙個引數的傳入不成功。就是後面多加幾個引數也不是什麼好的解決方法。後來,經過自己嘗試發現,使用萬用字元的方式可以實現多個引數的準確傳入。修改批處理如下:
@python c:\python27\touch.py %*
再次測試:
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:04 .
2017/05/19 00:04 ..
0個檔案 0 位元組
2個目錄78,496,595,968 可用位元組
c:\users\thinkpad\desktop\demo>touch 1.c 2.c 3.c
c:\users\thinkpad\desktop\demo>dir
驅動器 c 中的卷沒有標籤。
卷的序列號是 28bd-e720
c:\users\thinkpad\desktop\demo 的目錄
2017/05/19 00:04 .
2017/05/19 00:04 ..
2017/05/19 00:04 0 1.c
2017/05/19 00:04 0 2.c
2017/05/19 00:04 0 3.c
3個檔案 0 位元組
2個目錄78,496,595,968 可用位元組
從上面的結果可以看出,這次的功能實現就要實用多了。
DOS批處理檔案
dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...
DOS批處理檔案
dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...
DOS 批處理檔案
dos 下的可執行檔案有三種,分別是exe,和bat。其中,exe和 檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非常大,使...