2013-07-23 75 views
1

品牌新的在這裏,和全新的腳本。所以,我正在爲此苦苦掙扎,我知道我不應該這樣。批處理文件,如果然後從用戶輸入語句

我有,目前掃描並解壓縮zip文件的批處理文件。我所要做的只是在頂部添加一個Business Date輸入行,然後可以在解包中引用它以確保日期是正確的。下面是該文件,因爲它存在(我已經添加了用戶輸入只是不知道如何引用它):

echo off 
:Ask 
echo Please enter Business Date (MMDDYYY) 
set INPUT= 
set /P INPUT=Type input: %=% 


c: 
cd\502 
erase *.prn 
7z e "\\svr-dc\ftp site\502\daily\data1.zip" 
copy sz*.* sales.xls 
copy sc*.* cosales.xls 
copy aj*.* money.xls 
copy cc*.* count.xls 
pause 

取而代之的是暫停的存在,我想該文件通過所有目錄運行,他們是502至607,並告訴我是否在列出的文件名。與用戶輸入的營業日期相同。然後,通過其他目錄執行相同的操作。一旦經過驗證,我希望打開一個.txt文件,並與任何不匹配的商業日期打開。這有任何意義嗎?任何幫助,將不勝感激。

非常感謝。

+0

該批次如何識別所需的文件?什麼是「其餘的目錄」?什麼是'不匹配的商業日期'? – Endoro

+0

所有解壓縮的文件都是szMMDDYYY sales.xls等等。我試圖驗證這些文件是在運行此批處理文件時更新的,而不是在每次暫停時都返回。 – Benjooster

+0

對不起,該目錄的其餘部分類似標記,502,503,504等通過607 – Benjooster

回答

0
... 
c: 
FOR /L %%X in (502,1,607) DO (
cd\%%X 
erase *.prn 
7z e "\\svr-dc\ftp site\%%X\daily\data1.zip" 
copy sz*.* sales.xls 
copy sc*.* cosales.xls 
copy aj*.* money.xls 
copy cc*.* count.xls 
) 

你會使用%input%訪問已進入作爲輸入值,但是你給不知道如何"to make sure the dates are correct."


嗯 - 給出進一步的信息(也許...)

... 
c: 
FOR /L %%X in (502,1,607) DO (
cd\%%X 
erase *.prn 
7z e "\\svr-dc\ftp site\%%X\daily\data1.zip" 
if exist sz%input%*.prn ( 
    copy sz*.* sales.xls 
    copy sc*.* cosales.xls 
    copy aj*.* money.xls 
    copy cc*.* count.xls 
) else (
    echo Repoll %%X First>>C:\Users\Boster\Desktop\RePoll.txt 
) 
) 

非常關鍵的是發生在相同的物理線路的if() else (都出現在同一物理線路。

+0

好吧,讓我試着更清楚。所有被複制的文件,sz *。*都是過時的文件。今天的實際文件名稱爲sz07222013.prn。我試圖根據用戶在開始時輸入的日期來確認所有這些文件名。感謝for循環的澄清! – Benjooster

+0

因爲它不會讓我再次在這裏張貼足夠的空間來顯示代碼,我已經更新到接近。無論輸入的日期如何,它仍然每次輸出。 'code'if EXIST SZ%輸入%.PRN( \t拷貝SZ * * SALES.XLS 。)ELSE( \t回聲Repoll %% X首先>> C:\用戶\博士德\桌面\ RePoll.txt ) – Benjooster

0

你問了幾個問題所以不是寫一個批處理腳本,我想我應該打破它,解釋它是如何回答你的問題:

1使用%INPUT%引用您的變量/用戶輸入

2-如果將總是具有502至607,則可以通過它們循環使用for循環 FOR /L %%G IN (502,1,607) DO echo %%G

3-要檢查是否存在文件/文件夾具有相同的值作爲用戶輸入使用if EXIST %INPUT%陳述

有相當多的教程在那裏,這裏是一個指導您完成batch file scripting

+0

非常感謝。儘管你的觀點3,但是如何獲得bat文件來告訴我其中一個日期是否不正確?這應該是驗證文件已更新。 – Benjooster

+0

你的意思是「其中一個日期不正確」? –

+0

對不起,如果你看看輸入,它要求MMDDYYY格式的日期。這些文件本身被稱爲szMMDDYYYsales.xls等。我需要它檢查文件名中間的日期,然後吐出它是否不正確。我已經知道它打印到一個txt文件,但我似乎無法得到它強制驗證,它只是每次打印。這裏是我爲解決這個問題而制定的更新代碼。一旦我找到了單個網站,我將在for Loop中工作。 – Benjooster

相關問題