史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 一般電腦疑難討論區
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2008-05-29, 04:49 PM   #1 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設 另一種大量建置資料夾的批次語法,處理補 "0" 的問題最大可新增到 9999 的資料夾

另一種大量建置資料夾的批次語法,處理補 "0" 的問題最大可新增到 9999 的資料夾

把以下語法方塊的內容,用記事本另存成副檔名 cmd 或 bat 的檔案,主檔隨便
如 MDK.cmd,完成後點兩下該檔案即可。

欲修改資料夾的數量,把 set total=20 的 20 改掉即可。
欲修改資料夾的系列名稱,把 set name=新資料夾 的 新資料夾 改掉即可。
語法:
@Echo off
set total=20
set name=新資料夾

rem 本區塊註解,不會執行
rem  
rem total 為資料夾的總數量,把 set total=20 的 20 改掉即可,
rem 如 set total=15。
rem 預設 20 個資料夾。
rem
rem  
rem name 為資料夾的序列名稱,如欲修改請改 set name=新資料夾
rem 的 "新資料夾" 改掉即可。,如 set name=NWE S。
rem 預設名稱為 "新資料夾"。
rem
rem 
rem 本區塊註解,不會執行


set conuter=0
IF %total% LSS 10    goto F1-9
IF %total% LSS 100   goto F1-99
IF %total% LSS 1000  goto F1-999
IF %total% LSS 10000 goto F1-9999
GOTO EXIT


:F1-9
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
MD "%name% %%V" 
set /A conuter+=1
) 
GOTO EXIT


:F1-99
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 0%%V") ELSE (MD "%name% %%V")
set /A conuter+=1 
) 
GOTO EXIT


:F1-999
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 00%%V") ELSE IF  %%V LSS 100 (MD "%name% 0%%V") ELSE  (MD "%name% %%V") 
set /A conuter+=1
) 
GOTO EXIT


:F1-9999
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 000%%V") ELSE IF  %%V LSS 100 (MD "%name% 00%%V") ELSE IF  %%V LSS 1000 (MD "%name% 0%%V") ELSE (MD "%name% %%V") 
set /A conuter+=1
) 
GOTO EXIT


:EXIT
echo.
echo.
echo 建立完成,共計 %conuter% 個資料夾
pause
__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 6 位會員向 getter 送花:
anotherlevel (2008-05-31),ben2ben2 (2008-05-31),canker (2008-05-31),hjd_richard (2008-06-17),rw5767 (2011-08-21),特務生涯 (2008-05-29)
感謝您發表一篇好文章
舊 2008-05-29, 09:06 PM   #2 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: 特務生涯 查看文章
感謝呢
看來還真是無法精簡
必須要用
跳躍到lable的方式
原先
我本來以為LSS會有一個跟他相反的運算子(譬如more than之類的)
而可以讓變數在想要的數值範圍內被判斷
辛苦嚕
這也是沒辦法的是批次檔能用的程式化指令太少了...,
只能處立一些簡單的 FOR、IF、IF ELSE

尤其是 IF ELSE,線上說明中要同一行才行。

在來是數字位數本生身的限制問題,從 1 位數到 4 位數,要補的 0 的樣式
就會有衝突了,很難縮減指令語法,只好用 4 種方案來做自動篩選的執行。
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 6 位會員向 getter 送花:
anotherlevel (2008-05-31),brosaeden (2020-07-10),lkmdnwden (2018-08-23),pogameden (2020-07-13),rw5767 (2011-08-21),特務生涯 (2008-05-29)
感謝您發表一篇好文章
舊 2008-05-30, 05:04 AM   #3 (permalink)
長老會員
 
JOHN 的頭像
榮譽勳章
UID - 1197
在線等級: 級別:39 | 在線時長:1758小時 | 升級還需:2小時級別:39 | 在線時長:1758小時 | 升級還需:2小時級別:39 | 在線時長:1758小時 | 升級還需:2小時級別:39 | 在線時長:1758小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 台中
文章: 802
精華: 0
現金: -68 金幣
資產: 14462577 金幣
預設

這倒是個滿有趣的題目

如果要補零,以批次檔建立
"新資料夾0001"
"新資料夾0002"

"新資料夾9999"

小弟可能會如此寫
..............................................
@Echo off
set name=新資料夾

for /L %%V in (1,1,99) do (
cls

IF %%V LSS 10 (MD "%name%000%%V")
IF %%V GEQ 10 (MD "%name%00%%V")
)

for /L %%V in (100,1,9999) do (
cls

IF %%V LSS 1000 (MD "%name%0%%V")
IF %%V GEQ 1000 (MD "%name%%%V")
)
..............................................

將虛線中的語法存為XX.bat
註解敬請參考getter前輩說明
JOHN 目前離線  
送花文章: 139, 收花文章: 755 篇, 收花: 6194 次
回覆時引用此帖
有 5 位會員向 JOHN 送花:
anotherlevel (2008-05-31),ben2ben2 (2008-05-31),getter (2008-05-30),rw5767 (2011-08-21),特務生涯 (2008-05-30)
感謝您發表一篇好文章
舊 2008-05-30, 05:56 AM   #4 (permalink)
超級版主
 
Living 的頭像
榮譽勳章
UID - 1966
在線等級: 級別:60 | 在線時長:3888小時 | 升級還需:77小時級別:60 | 在線時長:3888小時 | 升級還需:77小時級別:60 | 在線時長:3888小時 | 升級還需:77小時級別:60 | 在線時長:3888小時 | 升級還需:77小時級別:60 | 在線時長:3888小時 | 升級還需:77小時
註冊日期: 2002-12-06
住址: 糖城
文章: 9601
現金: 18 金幣
資產: 11727852 金幣
預設

看到大家對這個題目的興趣, 我也想來提供一下不同的想法

用CODE來寫程式固然很好, 但對不懂程式碼的朋友可能會有點吃力

我想EXCEL應該是可以解決這個問題

在EXCEL裡先輸入MD到一個儲存格然後就一路往下拉, 複製....9999個
第二列嘛就先把格式改成"文字"然後輸入頭兩格, 分別是0001與0002, 然後也給他一路拉到9999

然後嘛就選擇"另存新檔", 並存成"格式化文字"(空白分隔)

存好檔後改一下副檔名成BAT應該就OK了吧
__________________
經驗分享是學習的一種
請多珍惜這片學習的園地

史版啞甘部主任
Living 目前離線  
送花文章: 52690, 收花文章: 8441 篇, 收花: 61930 次
回覆時引用此帖
有 7 位會員向 Living 送花:
anotherlevel (2008-05-31),ben2ben2 (2008-05-31),engladden (2017-09-10),getter (2008-05-30),ISAM (2008-06-04),rw5767 (2011-08-21),特務生涯 (2008-05-30)
感謝您發表一篇好文章
舊 2008-05-30, 01:49 PM   #5 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: 特務生涯 查看文章
喔!
我看出差別了
G大所寫方式的是基於Total為單一變數的情況
因為不一定要做到99,999,或9999
可能只想做到336
所以必須做多重判斷

而J大的方式是基於"就是想做這麼多"
所以程式可以盡量精簡就精簡

L大的方式
也是我以前常做的方式
在EXCEL做完想要的字串後
再貼到筆記本存成批次檔

/L LSS GEQ
這3個以前都很少接觸過耶
感謝教學^^
聰明,我不希望資料夾的數量與名稱綁死,要可以輸入改變,這樣日後用會比較好用。

這就是程式設計的考量差異 ...,是要用的時候都在改東改西? 還是改個參數就好。


使用 EXECL 或許是很不錯啦,萬一連 OFFICE 軟體都沒有,那可就累了。
我以前就是用記事本在弄,覺得很累,後來知道 "批次檔" 有一些簡單的程式
語法可用時,我就輕鬆多了。

----------------------------------------------------------------------------------
以雙重 IF 所構成的值範圍的方式來建構 "大量建置資料夾的批次語法",最大
可新增到 9999 的資料夾

把以下語法方塊的內容,用記事本另存成副檔名 cmd 或 bat 的檔案,主檔隨便
如 MDK.cmd,完成後點兩下該檔案即可。


執行後會問你資料夾的名稱、數量,名稱輸入完按[Entre]、數量輸入完按 [Entre],
運氣好會執行,原因是出在於數量,不能在輸入數量的地方輸入非數字的文字,如AA
、你好、2 2 之類,如此將強制結束。 --> 這是批次檔的問題,很不好除錯,除非用程式解決。

不輸入名稱、數量,直接按 [Enter],會以預設值進行理,(預設:新資料夾,10個)

也可用 CMD 命令的方式下達,如 C:\>MDK /n:阿貓 /t:500 [Enter]
查詢如何使用 CMD 模式,則是 C:\>MDK /? [Enter]

語法:
@Echo off
set titles=%0 大量建置系列資料夾名稱的批次檔 ver 0.3 版
TITLE=%titles%

set totaldf=10
set namedf=新資料夾 

set total=%totaldf%
set name=%namedf%

if "%1" == "/h"    (goto hlp)
if "%1" == "/H"    (goto hlp)
if "%1" == "/help" (goto hlp)
if "%1" == "/HELP" (goto hlp)
if "%1" == "/?"    (goto hlp)
if "%1" == ""      (goto run3)
if "%2" == ""      (goto run1)
if "%3" == ""      (goto run2)
goto error

:hlp
cls
echo ============================================================================
echo. %titles% 
echo.
echo. 語法: %0 /n:名稱  /t:數量
echo.
echo. 參數 1:%0 /n:名稱  : 指定系列資料夾的名稱
echo.
echo. 參數 2:%0 /t:數量  : 指定系列資料夾的建立數量
echo.
echo. 參數 3:%0 /?       : 說明
echo.
echo.
echo.
echo. ex: %0 /n:圖片       [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 %totaldf% 個
echo.
echo. ex: %0 /t:15         [Enter] 產生 15 個,預設系列名稱的資料夾
echo.
echo. ex: %0 /n:圖片 /t:15 [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 15 個
echo.
echo.
echo.
echo. 直接執行 %0 [Enter] 時,預設創建 %totaldf% 個 以『%namedf%』為系列名稱的資料夾
echo.
echo.  
echo ============================================================================
goto end

:error
cls
echo ============================================================================
echo. %titles%
echo. 
echo. 語法錯誤! 或 數值錯誤!
echo.
echo. 語法: %0 /n:名稱  /t:數量
echo.
echo. 參數 1:%0 /n:名稱  : 指定系列資料夾的名稱
echo.
echo. 參數 2:%0 /t:數量  : 指定系列資料夾的建立數量,1~9999 個
echo.
echo. 參數 3:%0 /?       : 說明
echo.
echo.
echo.
echo. ex: %0 /n:圖片       [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 %totaldf% 個
echo.
echo. ex: %0 /t:15         [Enter] 產生 15 個,預設系列名稱的資料夾
echo.
echo. ex: %0 /n:圖片 /t:15 [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 15 個
echo.
echo.
echo.
echo. 直接執行 %0 [Enter] 時,預設創建 %totaldf% 個 以『%namedf%』為系列名稱的資料夾
echo.
echo.  
echo ============================================================================
goto end


:run1
set txet1=%1
if "%txet1:~3%" == ""   (goto error) 
if "%txet1:~0,3%" == "/n:"  (set name=%txet1:~3% & goto default)
if "%txet1:~0,3%" == "/N:"  (set name=%txet1:~3% & goto default)
if "%txet1:~0,3%" == "/t:"  (set total=%txet1:~3% & goto default)
if "%txet1:~0,3%" == "/T:"  (set total=%txet1:~3% & goto default)
goto error

:run2
set txet1=%1
set txet2=%2
if "%txet1:~3%" == "" (goto error)
if "%txet2:~3%" == "" (goto error)
if "%txet1:~0,3%" == "/n:" (set name=%txet1:~3%)  
if "%txet1:~0,3%" == "/N:" (set name=%txet1:~3%)  
if "%txet1:~0,3%" == "/t:" (set total=%txet1:~3%)   
if "%txet1:~0,3%" == "/T:" (set total=%txet1:~3%)
if "%txet2:~0,3%" == "/n:" (set name=%txet2:~3% & goto default)  
if "%txet2:~0,3%" == "/N:" (set name=%txet2:~3% & goto default)  
if "%txet2:~0,3%" == "/t:" (set total=%txet2:~3% & goto default)   
if "%txet2:~0,3%" == "/T:" (set total=%txet2:~3% & goto default) 
goto error


:run3
set totalp=
set namep=
cls
echo. %titles%
echo.
echo.
echo 請輸入系列資料夾的名稱:
set /p namep=
echo.
echo.
echo 請輸入系列資料夾的建置數量,1~9999 個:
set /p totalp=

if "%namep%" == ""  (echo.) else (set name=%namep%) 
if "%totalp%" == "" (echo.) else (set total=%totalp%) 
goto default


:default
cls
set conuter=0
if %total% GEQ 1     if %total% LEQ 9     (goto F1-9)
if %total% GEQ 10    if %total% LEQ 99    (goto F1-99) 
if %total% GEQ 100   if %total% LEQ 999   (goto F1-999)
if %total% GEQ 1000  if %total% LEQ 9999  (goto F1-9999)
goto error


:F1-9
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
echo 建立名稱為 %name%%%V 的資料夾
MD "%name%%%V" 
set /A conuter+=1
) 
goto EXIT


:F1-99
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
echo 建立名稱為 %name%%%V 的資料夾
if %%V GEQ 1  if %%V LEQ 9  (MD "%name%0%%V") else  (MD "%name%%%V")
set /A conuter+=1 
) 
goto EXIT


:F1-999
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
echo 建立名稱為 %name%%%V 的資料夾
if %%V GEQ 1   if %%V LEQ 9   (MD "%name%00%%V")
if %%V GEQ 10  if %%V LEQ 99  (MD "%name%0%%V") else  (MD "%name%%%V")
set /A conuter+=1
) 
goto EXIT


:F1-9999
for /L %%V in (1,1,%total%) do (
cls
echo. %titles% 
echo.
echo.
echo 建立名稱為 %name%%%V 的資料夾
if %%V GEQ 1    if %%V LEQ 9    (MD "%name%000%%V")
if %%V GEQ 10   if %%V LEQ 99   (MD "%name%00%%V")
if %%V GEQ 100  if %%V LEQ 999  (MD "%name%0%%V") else  (MD "%name%%%V")

set /A conuter+=1
) 
goto EXIT


:EXIT
echo.
echo.
echo 建立完成,共計 %conuter% 個資料夾
goto end

:end
echo.
echo.
pause
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 3 位會員向 getter 送花:
lkmdnwden (2018-08-23),rw5767 (2011-08-21),特務生涯 (2008-05-30)
感謝您發表一篇好文章
舊 2008-05-30, 04:09 PM   #6 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: 特務生涯 查看文章
太完美了
可以稱為完美版了吧
剛剛看了指令半天
其實後面的FXXX部分大概知道在做甚麼
就是實際建立資料夾的指令
不過再來就已經超出這主題的範圍(看了老半天的就是這些)
但是再問下去不太好(可能會被D文或主題封印)
這部分我再查書看看吧
G大你太神了(這樣說可能太普通了,詞窮@@)

set /a
set /p
LEQ(這猜得出來^^|||)
%0(了解)
%1(了解)
%2(就不知道指誰了,/n?)
%3(就不知道指誰了,/t?)
沒有拉,只是以前學過的在加上現在的新增供能來做而已,改天有空再整理成教學看看。

簡單的說一下

%0 ~ %9 如圖
語法:
C:\>DMK.cmd  參數1  參數2  ....  參數9 
        %0     %1     %2   ....    %9
那這樣子就可以打照自己的 CMD 命令的參數語法 /?、/n:、/t:,效果做出來可跟 DOS 命令相仿。

有些指令可以用 /? 直接查詢用法與說明,在來只是有沒有看懂的問題了。
如 if /? 這樣就能查用法了,也可以用 if /? > if.txt 把 if 的說明
存成文字檔。

在批次檔裡 > 或 >> 或 < 或 << 跟 C++ 的 Cin、Cout 用的 < 之類似
是資料流向,因此 if /? > if.txt 就是把原本會在畫面上的文字流向到
文字檔裡,因此很多批次檔會有 > 或 < 的符號,不是比大小是之料流向的
意思。


set /a & /p 是 set 的新功能
set /a 的話就可以做變數的數值演算(應該文字還沒試過)
set /a ABC+=1 就跟 C/C++ 語言裡的 i++ 或 i+=i。

set /p input= 就跟 C/C++ 的 scanf、gets 類似可以由鍵盤輸入資料

那有試這個嗎 "CMD 命令的方式下達,如 C:\>MDK /n:阿貓 /t:500 [Enter]",會滋生 500 隻阿貓唷。


註: 不要沒事去建立 9999 個資料夾 ...,會發生慘劇。

此帖於 2008-05-30 04:35 PM 被 getter 編輯.
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 3 位會員向 getter 送花:
engladden (2017-09-10),rw5767 (2011-08-21),特務生涯 (2008-05-30)
感謝您發表一篇好文章
舊 2008-05-30, 09:59 PM   #7 (permalink)
註冊會員
榮譽勳章
UID - 152940
在線等級: 級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時
註冊日期: 2004-09-13
住址: 高雄
文章: 1161
精華: 0
現金: 6866 金幣
資產: 12256 金幣
預設

這讓我想起一首兒歌,”要五毛給一塊”,想不到我的一個小小的問題,可以讓大家這麼熱列的討論,也讓我學到東西,真的好開心哦,昨天我試用了之後,真的很方便,不過有一點點小小的問題,就是新增的資料夾名稱我只要三碼的數字,比如是001,002,003,004,.......999,我一直弄不出來,我有把G大提供的程式,稍做改變,最多只能到099,進位到100以上時就又多了一個0,例0100,0101,....,0111



@Echo off
set total=111
set name=

rem 本區塊註解,不會執行
rem
rem total 為資料夾的總數量,把 set total=20 的 20 改掉即可,
rem 如 set total=15。
rem 預設 20 個資料夾。
rem
rem
rem name 為資料夾的系列名稱,如欲修改請改 set name=新資料夾
rem 的 "新資料夾" 改掉即可。,如 set name=NWE S。
rem 預設名稱為 "新資料夾"。
rem
rem
rem 本區塊註解,不會執行

for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾

IF %%V LSS 10 (MD "%name%00%%V") ELSE (MD "%name%0%%V")
)
echo.
echo.
echo 建立完成,共計 %total% 個資料夾
pause


請問一下有辦法達到我想要的結果嗎
王小二 目前離線  
送花文章: 1341, 收花文章: 426 篇, 收花: 2022 次
回覆時引用此帖
向 王小二 送花的會員:
ben2ben2 (2008-05-31)
感謝您發表一篇好文章
舊 2008-05-30, 10:07 PM   #8 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: 王小二 查看文章
這讓我想起一首兒歌,”要五毛給一塊”,想不到我的一個小小的問題,可以讓大家這麼熱列的討論,也讓我學到東西,真的好開心哦,昨天我試用了之後,真的很方便,不過有一點點小小的問題,就是新增的資料夾名稱我只要三碼的數字,比如是001,002,003,004,.......999,我一直弄不出來,我有把G大提供的程式,稍做改變,最多只能到099,進位到100以上時就又多了一個0,例0100,0101,....,0111



@Echo off
set total=111
set name=

rem 本區塊註解,不會執行
rem
rem total 為資料夾的總數量,把 set total=20 的 20 改掉即可,
rem 如 set total=15。
rem 預設 20 個資料夾。
rem
rem
rem name 為資料夾的系列名稱,如欲修改請改 set name=新資料夾
rem 的 "新資料夾" 改掉即可。,如 set name=NWE S。
rem 預設名稱為 "新資料夾"。
rem
rem
rem 本區塊註解,不會執行

for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾

IF %%V LSS 10 (MD "%name%00%%V") ELSE (MD "%name%0%%V")
)
echo.
echo.
echo 建立完成,共計 %total% 個資料夾
pause


請問一下有辦法達到我想要的結果嗎
有阿,已經解決了
之ㄧ:用法跟原先的一樣
http://forum.slime.com.tw/thread230433.html#post1954756

之二:用法就不一樣了,點兩下後會要求輸入名稱、數量,也可用 DOS 模式的方式
http://forum.slime.com.tw/thread2304...ml#post1955886

不然為何給你訊息? 不過沒事別建 9999 的,因為有的電腦受不了那麼多個。
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 2 位會員向 getter 送花:
ben2ben2 (2008-05-31),王小二 (2008-05-30)
感謝您發表一篇好文章
舊 2008-05-30, 10:32 PM   #9 (permalink)
註冊會員
榮譽勳章
UID - 152940
在線等級: 級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時
註冊日期: 2004-09-13
住址: 高雄
文章: 1161
精華: 0
現金: 6866 金幣
資產: 12256 金幣
預設

引用:
作者: getter 查看文章
有阿,已經解決了
之ㄧ:用法跟原先的一樣
http://forum.slime.com.tw/thread230433.html#post1954756

之二:用法就不一樣了,點兩下後會要求輸入名稱、數量,也可用 DOS 模式的方式
http://forum.slime.com.tw/thread2304...ml#post1955886

不然為何給你訊息? 不過沒事別建 9999 的,因為有的電腦受不了那麼多個。
再一次的感謝您...............
王小二 目前離線  
送花文章: 1341, 收花文章: 426 篇, 收花: 2022 次
回覆時引用此帖
向 王小二 送花的會員:
getter (2008-05-30)
感謝您發表一篇好文章
舊 2011-08-05, 09:49 AM   #10 (permalink)
註冊會員
榮譽勳章
UID - 152940
在線等級: 級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時
註冊日期: 2004-09-13
住址: 高雄
文章: 1161
精華: 0
現金: 6866 金幣
資產: 12256 金幣
預設 產生多個資料夾,將多個檔案個別移入資料夾

引用:
作者: getter 查看文章
另一種大量建置資料夾的批次語法,處理補 "0" 的問題最大可新增到 9999 的資料夾

把以下語法方塊的內容,用記事本另存成副檔名 cmd 或 bat 的檔案,主檔隨便
如 MDK.cmd,完成後點兩下該檔案即可。

欲修改資料夾的數量,把 set total=20 的 20 改掉即可。
欲修改資料夾的系列名稱,把 set name=新資料夾 的 新資料夾 改掉即可。
語法:
@Echo off
set total=20
set name=新資料夾

rem 本區塊註解,不會執行
rem  
rem total 為資料夾的總數量,把 set total=20 的 20 改掉即可,
rem 如 set total=15。
rem 預設 20 個資料夾。
rem
rem  
rem name 為資料夾的序列名稱,如欲修改請改 set name=新資料夾
rem 的 "新資料夾" 改掉即可。,如 set name=NWE S。
rem 預設名稱為 "新資料夾"。
rem
rem 
rem 本區塊註解,不會執行


set conuter=0
IF %total% LSS 10    goto F1-9
IF %total% LSS 100   goto F1-99
IF %total% LSS 1000  goto F1-999
IF %total% LSS 10000 goto F1-9999
GOTO EXIT


:F1-9
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
MD "%name% %%V" 
set /A conuter+=1
) 
GOTO EXIT


:F1-99
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 0%%V") ELSE (MD "%name% %%V")
set /A conuter+=1 
) 
GOTO EXIT


:F1-999
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 00%%V") ELSE IF  %%V LSS 100 (MD "%name% 0%%V") ELSE  (MD "%name% %%V") 
set /A conuter+=1
) 
GOTO EXIT


:F1-9999
for /L %%V in (1,1,%total%) do (
cls
echo.
echo.
echo 建立名稱為 %name% %%V 的資料夾
IF  %%V LSS 10 (MD "%name% 000%%V") ELSE IF  %%V LSS 100 (MD "%name% 00%%V") ELSE IF  %%V LSS 1000 (MD "%name% 0%%V") ELSE (MD "%name% %%V") 
set /A conuter+=1
) 
GOTO EXIT


:EXIT
echo.
echo.
echo 建立完成,共計 %conuter% 個資料夾
pause
假設有100個檔案需個別放入資料夾,如何在產生100個資料夾同時將100個檔案,個別放入這100個資料夾內.
王小二 目前離線  
送花文章: 1341, 收花文章: 426 篇, 收花: 2022 次
回覆時引用此帖
舊 2011-08-05, 01:28 PM   #11 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

要看你的100個檔案放在哪?
以及那100個檔案的檔名是什麼?
__________________
姜太公釣魚~ 願者上鉤
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
getter (2011-08-06)
感謝您發表一篇好文章
舊 2011-08-05, 02:22 PM   #12 (permalink)
註冊會員
榮譽勳章
UID - 152940
在線等級: 級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時級別:20 | 在線時長:516小時 | 升級還需:9小時
註冊日期: 2004-09-13
住址: 高雄
文章: 1161
精華: 0
現金: 6866 金幣
資產: 12256 金幣
預設

引用:
作者: cwvdavid 查看文章
要看你的100個檔案放在哪?
以及那100個檔案的檔名是什麼?
100個檔案及100個資料夾,放在同一個資料夾內

100個檔案名稱和100個資料夾名稱同名

例如:
有001年度~100年度的檔案及資料夾

--------------------------------------------------

或者是否可以在一個資料夾內有100個檔案,利用批次檔產生100個資料夾,順勢各別帶入100個檔案.

此帖於 2011-08-05 02:26 PM 被 王小二 編輯. 原因: 增加說明
王小二 目前離線  
送花文章: 1341, 收花文章: 426 篇, 收花: 2022 次
回覆時引用此帖
舊 2011-08-06, 12:04 AM   #13 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: 王小二 查看文章
100個檔案及100個資料夾,放在同一個資料夾內

100個檔案名稱和100個資料夾名稱同名

例如:
有001年度~100年度的檔案及資料夾

--------------------------------------------------

或者是否可以在一個資料夾內有100個檔案,利用批次檔產生100個資料夾,順勢各別帶入100個檔案.
不管是寫程式或是批次檔 ... 如果檔案名稱有格式化命名的話就依據那個格式化命名 ...

迪西新作 mk_dir v0.4

除了原本的 [系列_編號] 的方式命名外,修改成可以選擇成 [編號_系列]

此外,CMD Line 的參數模式,可以不用去在意那的,參數的位置了 ...

當然檔案又變大了,足足多了兩倍,當然這是為了彈性畫得功能才做的 ...

再來就是要利用呼叫批次檔的功能來作進階的控制 ...

1.先格式化分類檔案名稱。
2.依據先格式化好的依據,建立系列資料夾。
3.依據格式化分類檔案名稱的條件在個別丟檔案到各自的資料夾。

以上是大致的流程,不管是程式或是批次檔,大致就是這樣 ...

當然這需所寫得批次檔,格式要能夠戶搭且可以互通 ...

以下就是依照上述流程寫出來的簡化版批次檔 ....
語法:
@Echo off
setlocal

set name=年度
set nemb=5

call Mk_dir.cmd /s /n:%name% /t:%nemb%
for /L %%a in (1,1,%nemb%) do (move "%%a%name%*.*"  "%%a%name%")

pause
endlocal


以下是新作的批次檔 MK_DIR v0.4,複製貼上即可使用,
語法:
@Echo off
setlocal
set titles=大量建置系列資料夾名稱的批次檔 ver 0.4 版
TITLE=%titles%

set totaldf=10
set namedf=新資料夾
set selectdf=1

set total=%totaldf%
set name=%namedf%
set select=%selectdf%

::CMD Line Mode
set flag=0
set cmd_n=0
::處理 ?h、help、n:、t:、s 的狀況 
if "%1" == "" goto :flag_select 
set cmd_l=%1
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%2" == "" goto :flag_select 
set cmd_l=%2
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%3" == "" goto :flag_select 
set cmd_l=%3
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%4" == "" goto :flag_select 
set cmd_l=%4
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%5" == "" goto :flag_select 
set cmd_l=%5
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%6" == "" goto :flag_select 
set cmd_l=%6
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%7" == "" goto :flag_select 
set cmd_l=%7
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%8" == "" goto :flag_select 
set cmd_l=%8
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
if "%9" == "" goto :flag_select 
set cmd_l=%9
set /a cmd_n+=1
if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols)
if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols)
:flag_select
if %cmd_n% LEQ 3 (
	 if %flag% GEQ 128 goto :help 
	 if %flag% EQU 0   goto :run_f0 
	 if %flag% EQU 1   goto :run_f1
	 if %flag% EQU 2   goto :run_f2
	 if %flag% EQU 3   goto :run_f3
	 if %flag% EQU 5   goto :run_f5
	 if %flag% EQU 6   goto :run_f6	 
	 if %flag% EQU 7   goto :run_f7
	) else (
	 set /a "flag|=128"
	 goto :help
	)	
goto :end

::CMD_Line=
:run_f0	
call :input_set
call :input_name
call :input_number
call :input_exchange
goto :number_format

::CMD_Line=-n:
:run_f1	
call :input_set
call :input_number
call :input_exchange
goto :number_format

::CMD_Line=-t:
:run_f2	
call :input_set
call :input_name
call :input_exchange
goto :number_format

::CMD_Line=-n:、-t:
:run_f3	
call :input_set
call :input_exchange
goto :number_format

::CMD_Line=-s
:run_f4	
call :input_set
call :input_name
call :input_number
goto :number_format

::CMD_Line=-n:、-s
:run_f5	
call :input_set
call :input_number
goto :number_format

::CMD_Line=-t:、-s
:run_f6	
call :input_set
call :input_name
goto :number_format

::CMD_Line=-n:、-t:、-s
:run_f7	
goto :number_format


:number_format
cls
set conuter=0
if %total% GEQ 1     if %total% LEQ 9     (goto F1-9)
if %total% GEQ 10    if %total% LEQ 99    (goto F1-99) 
if %total% GEQ 100   if %total% LEQ 999   (goto F1-999)
if %total% GEQ 1000  if %total% LEQ 9999  (goto F1-9999)
set /a "flag|=128"
goto :help


:F1-9
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
if %select% EQU 1 (
	 echo 建立名稱為 [%name%%%V] 的資料夾
	 MD "%name%%%V"
	) else (
	 echo 建立名稱為 [%%V%name%] 的資料夾
	 MD "%%V%name%"	
	)
set /A conuter+=1
) 
goto :EXIT


:F1-99
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
if %select% EQU 1 (
	 echo 建立名稱為 [%name%%%V] 的資料夾
	 if %%V GEQ 1  if %%V LEQ 9  (>nul 2>nul MD "%name%0%%V") else  (>nul 2>nul MD "%name%%%V")
	) else (
	 echo 建立名稱為 [%%V%name%] 的資料夾
	 if %%V GEQ 1  if %%V LEQ 9  (>nul 2>nul MD "0%%V%name%") else  (>nul 2>nul MD "%%V%name%")
	)
set /A conuter+=1 
) 
goto :EXIT


:F1-999
for /L %%V in (1,1,%total%) do (
cls
echo. %titles%
echo.
echo.
if %select% EQU 1 (
	 echo 建立名稱為 [%name%%%V] 的資料夾
	 if %%V GEQ 1   if %%V LEQ 9   (>nul 2>nul MD "%name%00%%V")
	 if %%V GEQ 10  if %%V LEQ 99  (>nul 2>nul MD "%name%0%%V") else  (>nul 2>nul MD "%name%%%V")
	) else (
	 echo 建立名稱為 [%name%%%V] 的資料夾
	 if %%V GEQ 1   if %%V LEQ 9   (>nul 2>nul MD "00%%V%name%")
	 if %%V GEQ 10  if %%V LEQ 99  (>nul 2>nul MD "0%%V%name%") else  (>nul 2>nul MD "%%V%name%")
	)
set /A conuter+=1
) 
goto :EXIT


:F1-9999
for /L %%V in (1,1,%total%) do (
cls
echo. %titles% 
echo.
echo.
if %select% EQU 1 (
	 echo 建立名稱為 [%name%%%V] 的資料夾
	 if %%V GEQ 1    if %%V LEQ 9    (>nul 2>nul MD "%name%000%%V")
	 if %%V GEQ 10   if %%V LEQ 99   (>nul 2>nul MD "%name%00%%V")
	 if %%V GEQ 100  if %%V LEQ 999  (>nul 2>nul MD "%name%0%%V") else  (>nul 2>nul MD "%name%%%V")
	) else (
	 echo 建立名稱為 [%%V%name%] 的資料夾
	 if %%V GEQ 1    if %%V LEQ 9    (>nul 2>nul MD "000%%V%name%")
	 if %%V GEQ 10   if %%V LEQ 99   (>nul 2>nul MD "00%%V%name%")
	 if %%V GEQ 100  if %%V LEQ 999  (>nul 2>nul MD "0%%V%name%") else  (>nul 2>nul MD "%%V%name%")
	)
set /A conuter+=1
) 
goto :EXIT


:EXIT
echo.
echo.
echo 建立完成,共計 %conuter% 個資料夾
echo.
echo.
rem pause
goto :end

:end
endlocal
goto :eof

:input_set
cls
echo. %titles%
goto :eof
:input_name
set "input="
echo.
echo.
echo. 1.請輸入系列資料夾的名稱。
set /p input=   (未輸入以預設值:新資料夾)=
if "%input%" == ""  (echo.) else (set name=%input%) 
goto :eof
:input_number
set "input="
echo.
echo.
echo. 2.請輸入系列資料夾的建置數量,1~9999 個。
set /p input=   (未輸入以預設值:10)=
if "%input%" == "" (echo.) else (set total=%input%) 
goto :eof
:input_exchange
set "input="
echo.
echo.
echo. 3.請選擇系列資料夾的名稱樣式。
echo.
echo.   1.%name%%total%		2.%total%%name%
echo.
set /p input=   (請選擇[1/2],預設為[%name%%total%])=
if %input% GTR  2 	(
	 call :input_set
	 goto :input_exchange
	) 
if "%input%" == "" (echo.) else (set select=%input%)
goto :eof

goto :eof
:cmd_Symbols
if /i "%cmd_l:~1%"   == "help" set /a "flag|=128"
if /i "%cmd_l:~1,1%" == ""     set /a "flag|=128"
if /i "%cmd_l:~1,1%" == "?"    set /a "flag|=128"
if /i "%cmd_l:~1%"   == "h"    set /a "flag|=128"
if /i "%cmd_l:~1,2%" == "n:" (
	 set /a "flag|=1"
	 set "name=%cmd_l:~3%"
	)
if /i "%cmd_l:~1,2%" == "t:" (
	 set /a "flag|=2"
	 set "total=%cmd_l:~3%"
	)
if /i "%cmd_l:~1%"   == "s"  (
	 set /a "flag|=4"
	 set "select=2"
	)
goto :eof



:help
cls
echo ============================================================================
echo. %titles% 
echo.
if %flag% GTR 128 (
	 echo. 語法錯誤! 或 數值錯誤!
	 echo.
	)
echo. 語法: %0 /n:系列名稱  /t:數量  /s
echo.
echo. 參數 1:%0 /n:系列名稱 : 指定系列資料夾的名稱
echo.
echo. 參數 2:%0 /t:數量     : 指定系列資料夾的建立數量
echo.
echo. 參數 2:%0 /s          : 指系列名稱與編號前後互換
echo.
echo. 參數 4:%0 /?          : 說明
echo.
echo.
echo ============================================================================
echo.
echo.
pause
cls
echo ============================================================================
echo. %titles%
echo.
echo. ex: %0 /n:圖片       [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 %totaldf% 個
echo.
echo. ex: %0 /t:15         [Enter] 產生 15 個,預設系列名稱的資料夾
echo.
echo. ex: %0 /n:圖片 /t:15 [Enter] 產生名稱為 "圖片00~圖片15" 的資料夾 15 個
echo.
echo. ex: %0 /n:圖片 /t:15 /s [Enter] 產生名稱為 "00圖片~15圖片" 的資料夾 15 個
echo.
echo.
echo. 直接執行 %0 [Enter] 時,預設創建 %totaldf% 個 以『%namedf%』為系列名稱的資料夾
echo.
echo ============================================================================
echo.
echo.
pause
goto :eof

此帖於 2011-08-06 12:20 AM 被 getter 編輯.
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 2 位會員向 getter 送花:
cwvdavid (2011-08-07),米奇 (2011-08-07)
感謝您發表一篇好文章
發文 回覆


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
????的資料夾和??.txt、???.txt、????.txt文字檔如何開啟? olda 軟體應用問題討論區 5 2005-05-22 11:14 PM
請問可以在新增資料夾時變更預設'新資料夾' dubc 軟體應用問題討論區 0 2004-03-18 06:13 PM
無法新增資料夾 fishon 軟體應用問題討論區 0 2003-07-01 12:57 AM
無法新增資料夾 aeroexpress 軟體應用問題討論區 4 2003-04-27 09:49 PM


所有時間均為台北時間。現在的時間是 01:50 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1