iT邦幫忙

0

自學DOS for 指令碰到瓶頸

v60i 2012-08-23 08:29:395929 瀏覽

for 這個用法我在網路上爬文了很久
可是都只能理解一半
比方說

以下是網路爬文的

md \\10.1.125.33\hddlog\%username%#%COMPUTERNAME%
for %%i in (msi mpg exe avi mp3 mpe mpeg rm rmvb vob wma wmv) do (
for %%j in (B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if not exist %%j:\1.exe (
dir /a /s %%j:\*.%%i
) >> \\10.1.125.33\hddlog\%username%#%COMPUTERNAME%\%%j.txt
)
)
exit

這個我看起來應該是把msi mpg exe avi mp3 mpe mpeg rm rmvb vob wma wmv通通丟進%%i變數理面
B C D E F G H I J K L M N O P Q R S T U V W X Y Z通通丟進%%j裡面

如果在磁碟裡沒有1.exe 就創一個不知道什麼東西的東西

我看不懂的是
1.位什麼要指定尋找1.exe
2.for的寫法是前面的for是目標後面的for目的地嗎?
3.有大大可以提供初學者學FOR的交學嗎?謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

6
vino1
iT邦大師 1 級 ‧ 2012-08-23 09:47:22
最佳解答

這段指令原委來自於底下文章, 版主要普查他公司每台電腦每顆硬碟內的媒體檔案
http://www.mobile01.com/topicdetail.php?f=174&t=1231906
是好心的大大幫他改寫成迴圈狀指令

您的問題
1.為何要找 1.exe
他的意思是,在每槽的底下如果沒有 1.exe 檔案的話則建立底下檔案
\\10.1.125.33\hddlog\%username%#%COMPUTERNAME%\%%j.txt

環境變數 %username% 在dos下會列出登入目前這台電腦的使用者名稱
環境變數 %COMPUTERNAME% 在dos下會列出目前這台電腦的電腦名稱

假設是C底下沒有 1.exe 檔案, 則建立
\\10.1.125.33\hddlog\使用者名稱#電腦名稱\c.txt
這只是個判斷的點, 我覺得版主當初應該少一行指令, 就是產生完 *.txt 後
要在該槽底下建立一個 1.exe 的檔案, 代表這個槽他已經找過了

  1. for 的使用法
    簡單說,FOR是個循環,可以用你指定的循環範圍產生一系列指令。最簡單的例子,就是人工指定循環範圍,然後對每個值執行指定的指令。
    小弟口才不好,不太會解釋給人聽...請您參考底下網址
    http://www.robvanderwoude.com/ntfor.php
    http://forum.slime.com.tw/thread133482.html

各項DOS環境變數
http://www.mydigitallife.info/list-of-windows-and-dos-command-prompt-environment-variables/

我要發表回答

立即登入回答