
求助批量創建文件夾移動文件的批處理怎樣寫才更簡潔[已解決]最后由 semiuel 于 -9-28 11:32目前有這樣一個需求,想通過批處理來完成:有5個XLS文件分別為:出庫清單.xls 庫存清單.xls 入庫清單.xls 入庫統表.xls 應付賬款.xls想要實現這樣的功能:輸入一個年份,在E盤創建這個目錄,然后創建12個子目錄分別為.01-.12然后把上面5個XLS文件分別復制到每個目錄,并改名為類似這樣的文件名:出庫清單.01.xls 庫存清單.01.xls 入庫清單.01.xls 入庫統表.01.xls 應付賬款.01.xls目錄結構如下:E:└─.01入庫清單.01.xls入庫統表.01.xls出庫清單.01.xls庫存清單.01.xls應付賬款.01.xls└─.02入庫清單.02.xls入庫統表.02.xls出庫清單.02.xls庫存清單.02.xls應付賬款.02.xls。。。。。。。。。└─.12入庫清單.12.xls入庫統表.12.xls出庫清單.12.xls庫存清單.12.xls應付賬款.12.xls我自己寫了一個批處理,但水平有限,寫得非常繁瑣。
盼大神們幫忙看看。nclick="copycode($('code0'));">復制代碼
- @echo off
- setlocal enabledelayedexpansion
- set file1=出庫清單
- set file2=庫存清單
- set file3=入庫清單
- set file4=入庫統表
- set file5=應付賬款
- if not exist %file1%.xls goto error1
- if not exist %file2%.xls goto error1
- if not exist %file3%.xls goto error1
- if not exist %file4%.xls goto error1
- if not exist %file5%.xls goto error1
- :begin
- cls
- set /p year=請輸入年份:
- if %year%== goto begin
- set /a a=1/(%year%1) 2>nul && cls || goto begin
- if %year% lssgoto begin
- if %year% gtr 2100 goto begin
- if exist E:%year% goto error2
- MD E:%year%%year%.01
- COPY %file1%.xls E:%year%%year%.01%file1%%year%.01.xls
- COPY %file2%.xls E:%year%%year%.01%file2%%year%.01.xls
- COPY %file3%.xls E:%year%%year%.01%file3%%year%.01.xls
- COPY %file4%.xls E:%year%%year%.01%file4%%year%.01.xls
- COPY %file5%.xls E:%year%%year%.01%file5%%year%.01.xls
- goto end
- :error1
- echo 缺少文件。
- goto end
- :error2
- echo 已存在該年份文件。
- goto end
- :end
- pause >nul

