Batch-fil - Byt namn på TXT-fil om filen finns

  • Problem
  • Lösning
  • Notera

Problem

Jag skriver en batchfil för att skicka in helpdesk-biljetter. Jag behöver skriptet för att se om filen som ska skapas existerar redan (% nameuser%) och om så är fallet, så namnge filen som ska skapas% nameuser1% och consectutive efter det 1, 2, 3, 4, 5 ect.

Min kod ser ut som följer:

 @echo off echo. HelpDesk Program skrivet av PFC Torrey, Stephen 7:46 PM 1/4/2010 color 3 echo. eko. eko. :: kartor nätverkskort echo. Kartläggning av nätverksdriven nätanvändning s: \ 10.10.4.69delad pauseko eko. eko. eko. :: prompten för användarnamnet echo "Vem skickar in den här biljetten ?, (Efternamn Förnamn Inga utrymmen)?" set / p nameuser = echo. eko. eko. eko. :: gör dir av användarnamnetekst i mappad enhet mkdir s: CAINhelptickets% nameuser% set drive = S: CAINhelptickets% nameuser% echo. eko. eko. eko. :: prompten för enhetens eko "Vilken enhet tillhör du?" set / p unit = :: prompt for problem echo "Vad har du ett problem med ?, (Computer, Radio, BFT, Other) set / p problem = :: prompt for discription echo" Vänligen beskriv problemet i detalj, " echo "inklusive eventuella steg som behövs för att utlösa problemet." set / p discription = :: prompt for building number echo "Vilket byggnummer är du i?" set / p buildingnumber = :: prompt for phone number echo "Var god ange ett giltigt telefonnummer eller extention "set / p telefonnummer = echo. echo." Skapa biljett vänligen förbi "pause echo.% enhet%>% drive %% nameuser% .txt echo.% nameuser% >>% drive %% nameuser % .txt echo.% problem% >>% drive %% nameuser% .txt echo.% discription% >>% drive %% nameuser% .txt echo.% buildingnumber% >>% drive %% nameuser% .txt echo. % telefonnummer% >>% drive %% nameuser% .txt :: Skriver IP Configuartion till biljetteko. Skapa IP-konfiguration ipconfig / all >>% drive %% nameuser% .txt eko. eko. eko. eko. Biljett har skickats, vänligen vänta för en S6-rep att kontakta dig. "Echo." -P FC Torrey, Stephen R "@pause 

Någon ide skulle vara fantastisk.

Tack på förhand

Lösning

Här är en batch script som hittar den senaste katalogen heter $ usernameXXX.

# Skript FindNextTicket.txt

var str användarnamn, dir; var int räkna; var bool hittades

cd "S: CAINhelptickets"

medan (INTE ($ hittades))

do

 om ($ count == 0) set $ dir = "S: CAINhelptickets" + "/" + $ användarnamn annars set $ dir = "S: CAINhelptickets" + "/" + $ användarnamn + makestr (int ($ count)) endif av $ dir om (NOT ($ fexists)) set $ found = true echo "Den korrekta katalogvägen är" $ dir done endif echo -e "DEBUG: Directory" $ dir "existerar redan." set $ count = $ count + 1 done 

Det här batch-skriptet är i bitskrivning. Spara skriptet i filen "C: /Scripts/FindNextTicket.txt" .

Lägg sedan till följande kommandon i ditt batch script.

 "C: /biterscripting/biterscripting.exe" "C: /Scripts/FindNextTicket.txt" användarnamn ("% nameuser%") -oo "output.txt" typ putput.txt 

Notera

Tack till Richard.Williams för detta tips på forumet.

Tidigare Artikel Nästa Artikel

Bästa Tipsen