• 0

Batch Script - Take user input and rename+move files


Go to solution Solved by ozzy76,

Question

Circaflex

I am having difficulty with a script for work; what I am looking to do is allow the user to input a string, then the replacement string and the script will rename the files in the directory and move them to a location. I was able to get the user input and rename to work, however I am clearly not doing something correctly for the move function. Here is my code:

 

@echo off
setlocal enableDelayedExpansion
set /p "string1=Enter the sequence to be replaced : "
set /p "string2=Enter the new sequence  : "
for %%F in (*%string1%.*) do (
  set "filename=%%F"
  ren "!filename!" "!filename:%string1%=%string2%!"
)
& move "C:\myfilepath\*.xlsx" "C:\newfilepath\"

I think my issue I am not inserting the move command in the proper area, I have tried including it before the ) as well, with no luck. This is not my forte; however I think I have the logic correct its merely where to add it?

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1
ozzy76

For the file moves, just do something like this:

 

:: move .xlsx files
for /f "delims=" %%a in ('dir *.xlsx /s /b') do move "%%a" .\dest
  • Like 1
Link to post
Share on other sites
  • 0
Circaflex

BUMP anyone?

Link to post
Share on other sites
  • 0
jake1eye

Here is a CMD file that produces a VBS Inputbox that takes the user input and Echo it back out in CMD Prompt. This is only a template so you would have to work out rename and move things.

 

 

@Echo Off
CLS
MODE 75, 12
COLOR 9F

Set Vbs=VbsReturn.vbs 

>  %Vbs% Echo  Dim Return, Cmd, Fso, Ts
>> %Vbs% Echo   Do 
>> %Vbs% Echo    Return = Inputbox("Type In Some Web Addresss, This Must Be" ^&^_
>> %Vbs% Echo     "Longer Than 10 Character EG: WWW.123.CA" ^&vBcrlf^&_
>> %Vbs% Echo     "Type Exit Or Quit To Do Nothing")
>> %Vbs% Echo     If Instr(1,Return,"exit",1) Or Instr(1,Return,"quit",1) Then
>> %Vbs% Echo      CreateObject("Wscript.Shell").Run("Taskkill /F /IM cmd.exe /T"),0,true 
>> %Vbs% Echo      Wscript.Quit(1)
>> %Vbs% Echo     End If
>> %Vbs% Echo     If Len(Return) ^>= 10 Then
>> %Vbs% Echo      MkCmd(Return)
>> %Vbs% Echo      Exit Do
>> %Vbs% Echo     Else
>> %Vbs% Echo      Return = ""
>> %Vbs% Echo     End If
>> %Vbs% Echo   Loop Until Len(Return) ^>= 10 
>> %Vbs% Echo    Function MkCmd(T) 
>> %Vbs% Echo     Set Fso = CreateObject("Scripting.FileSystemObject")
>> %Vbs% Echo      Cmd = "%CD%\ReturnCmd.cmd"  
>> %Vbs% Echo     Set Ts = Fso.CreateTextFile(Cmd)
>> %Vbs% Echo      Ts.WriteLine "Set Return=" ^&T
>> %Vbs% Echo      Ts.Close
>> %Vbs% Echo    End Function

start /wait "" %Vbs%

call "%CD%\ReturnCmd.cmd"

del %Vbs%
del "%CD%\ReturnCmd.cmd"


CLS
MODE 82,5
COLOR 5F
Echo.
Echo User URL %Return%
Echo.
pause
Exit

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.