我有個系統,會生成乙個檔案「d:\aa.txt」
這個檔案會被經常改寫,有時為空(即:0位元組),有時有內容(即:大於0位元組)
我想用批處理來判斷:若該檔案為空,則執行"a.exe";
若該檔案不為空,則執行"b.exe」
謝謝!
batman發表於 2011-3-25 11:05
[code]
@echo off
set "paths=d:\a.txt"
for %%a in ("%paths%") do (
if "%%~za" equ "0" (
start "" "完整路徑(a.exe)"
) else (
start "" "完整路徑(b.exe)"))
[/code]
zidian5發表於 2011-3-25 11:26
[b] [url= [i]batman[/i] [/b]
非常感謝,已經解決了!
dashige發表於 2011-3-25 11:35
equ "0"
哈哈。。。。
wc726842270發表於 2011-3-25 12:32
無聊用wmic寫乙個,當然不如用2l的方法好。
ps:空格真是上火,找了n久才發現[code]
@echo off
set /p #a=請指定檔案:
for %%i in (%#a%) do set #d=%%~di&set #p=%%~pi &set #n=%%~ni& set #e=%%~xi
set b=%#p:\=\\%
set c=%b:~0,-1%
set x=%#e:~1,-1%
wmic datafile where "drive='%#d%' and path='%c%' and filename='%#n%' and extension='%x%'" get filesize
pause
[/code]
hbwazxf發表於 2011-3-25 13:01
新人學習。感謝2樓的方法
crlf發表於 2011-3-25 13:08
方法很多,
方法一:
findstr .* a.txt&&a.exe||b.exe
方法二:
for %%a in (a.txt) do if %%~za==0 (a.exe) else b.exe
方法三:
cd.>tmp
fc tmp a.txt&&a.exe||b.exe
方法四:
wmic...
::詳見5樓
方法五:
vbs...
::但是我只知道有,不清楚怎麼寫
方法六:
for /f "eol=" %%a in (a.txt) do set tmp=1
if defined tmp (a.exe) else b.exe
::忽略空行
當然還可以寫出很多引申的辦法,就不一一枚舉了
dahual發表於 2011-3-25 13:31
以前不知道此用法,這下好了。:lol學習帖。[code]
另外,for 變數參照的替換已被增強。您現在可以使用下列
選項語法:
%~i - 刪除任何引號("),擴充套件 %i
%~fi - 將 %i 擴充套件到乙個完全合格的路徑名
%~di - 僅將 %i 擴充套件到乙個驅動器號
%~pi - 僅將 %i 擴充套件到乙個路徑
%~ni - 僅將 %i 擴充套件到乙個檔名
%~xi - 僅將 %i 擴充套件到乙個副檔名
%~si - 擴充套件的路徑只含有短名
%~ai - 將 %i 擴充套件到檔案的檔案屬性
%~ti - 將 %i 擴充套件到檔案的日期/時間
%~zi - 將 %i 擴充套件到檔案的大小
%~$path:i - 查詢列在路徑環境變數的目錄,並將 %i 擴充套件
到找到的第乙個完全合格的名稱。如果環境變數名
未被定義,或者沒有找到檔案,此組合鍵會擴充套件到
空字串
可以組合修飾符來得到多重結果:
%~dpi - 僅將 %i 擴充套件到乙個驅動器號和路徑
%~nxi - 僅將 %i 擴充套件到乙個檔名和副檔名
%~fsi - 僅將 %i 擴充套件到乙個帶有短名的完整路徑名
%~dp$path:i - 搜尋列在路徑環境變數的目錄,並將 %i 擴充套件
到找到的第乙個驅動器號和路徑。
%~ftzai - 將 %i 擴充套件到類似輸出線路的 dir
[/code]
tmplinshi發表於 2011-3-25 16:47
[quote]方法六:
for /f "eol=" %%a in (a.txt) do set tmp=1
if defined tmp (a.exe) else b.exe
::忽略空行
[size=2][color=#999999]zm900612 發表於 2011-3-25 13:08[/color] [url=
"eol=" 會忽略以雙引號開頭的行。
頁:[1]
乙個檔案處理的批處理
目錄c dat 有三個這樣的檔案,2008a.txt,2009b.txt,2008c.txt,其中2008是代表年份,可變的,後面的檔名不可變 我想實現這樣的操作 1.把dat下面所有的檔案的年份取出來,寫到year.txt檔案中,a 2008 b 2009 c 2008 2。然後把檔名的年份去掉變...
python 建立乙個txt檔案
建立乙個txt檔案,檔名為mytxtfile,並向檔案寫入msg 注意檔案的路徑不要錯,還有檔案的格式 建立乙個txt檔案,檔名為mytxtfile,並向檔案寫入msg def text create name,msg desktop path c users administrator deskt...
BAT批處理判斷是否是資料夾,是則遍歷
先來看我們需要執行的檔案 start.bat echo 1 echo n1 if exist 1 call dir.bat 1 else file.bat 1 再來dir.bat echo 1 echo n1 echo off color 0a 指定起始資料夾 set dir 1 echo dir ...