2011-10-26 90 views
0

我已經做了一個簡單的批處理腳本來生成CodeIgniter文件夾結構(腳手架),但是...腳本記住%1環境變量的最後一個值,因爲有一個鍵盤緩衝區。任何簡單解決方案我使用的是Windows 7如何在DOS批處理中清空鍵盤緩衝區?

@echo off 
REM by Pablo Bozzolo (2011) 

REM HOW to empty keyboard buffer before ??? 
if "%1"=="" goto inicio 
set (%uname%)=(%1) 
goto creacion 

:inicio 
set /P uname=Nombre del modulo ? 
if "%uname%"=="" goto inicio 

echo Desea crear el modulo %uname% 
choice 
if errorlevel 2 goto end 

:creacion 
mkdir %uname% 
cd %uname% 
mkdir config 
mkdir controller 
mkdir libraries 
mkdir models 
mkdir views 

type NUL > ./controller/%uname%.php 
type NUL > ./models/%uname%_m.php 
cd.. 
echo Modulo %uname% creado! 
goto end 
:end 
+0

你是怎麼得出這個結論的? %1是該腳本的第一個命令行參數。它與鍵盤緩衝區無關。 –

+0

我也認爲他誤解了%1的使用,但看看腳本的作用。如果%1沒有傳遞給腳本,我想他可以做些事情。 – NiklasJ

+0

嗨!我的想法是這個腳本可以從命令行使用,也可以用作Windows程序......就是這樣......我也使用%1 - J. Kommer:感謝編輯:)) – boctulus

回答

1

如果你想,如果處理1%的空,簡單的寫

if "%~1" LEQ "" set uname=%1 
+0

user980631的空測試似乎工作,但'set(%uname%)=(%1)'是語法垃圾 – jeb

+0

是真的。只是遵循他的代碼。 但這不是唯一的問題: 'type NUL> ./controller %% uname%.php'也會導致問題。或者不是特別的問題,但它是語法垃圾,如你所說:) – NiklasJ