• 0

Batch Script - Take user input and rename+move files


Question

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?

3 answers to this question

Recommended Posts

  • 0

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("Taskkillcmcmd.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

 

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.
  • Popular Now

  • Posts

    • Look around you, everybody is making fun of Linux, even the author of this article, if you can't handle jokes maybe stay off the internet and go recompile your kernel or something.
    • ChatGPT memory upgrade extends to Free users by Pradeep Viswanathan Back in April, OpenAI announced a major upgrade to ChatGPT’s memory feature. The improved memory allowed ChatGPT to reference a user’s past chats to provide more personalized, relevant, and useful responses. Until today, this enhanced memory was available only to ChatGPT Plus and Pro users. Today, OpenAI announced that this memory upgrade is now rolling out to all logged-in ChatGPT Free users. This is big news, as it will impact the ChatGPT experience for hundreds of millions of users. For example, if a user previously mentioned liking Indian food, ChatGPT may remember that and suggest Indian dishes the next time the user asks, “What should I have for lunch?” However, OpenAI is not rolling out the same full-featured memory offered to paid users. Instead, Free users will receive a lightweight version that provides short-term continuity across conversations. ChatGPT Plus and Pro users will continue to benefit from longer-term memory and a deeper understanding of their preferences. To enable this memory feature, ChatGPT Free users in the EEA (EU + UK), Switzerland, Norway, Iceland, or Liechtenstein can go to Settings > Personalization > Memory > Reference chat history and turn it on. OpenAI will also present a prompt to enable this setting. All ChatGPT Free users outside the above regions will have memory enabled by default. Depending on their preferences, users can manage memory using these two settings: Reference saved memories: Details you’ve explicitly asked ChatGPT to remember, such as your name, favorite color, or dietary preferences. Reference chat history: ChatGPT can use information from your previous chats to make future conversations more helpful. While the capabilities differ between the free and paid tiers, this latest improvement to ChatGPT will deliver responses that feel more relevant and personalized for millions of users.
    • Actually there is rules about trolling here on Neowin. Thanks for playing but we are done here.
    • Do you know the difference between "crying over" and "making fun of"?
  • Recent Achievements

    • Week One Done
      jrromero17 earned a badge
      Week One Done
    • One Month Later
      jrromero17 earned a badge
      One Month Later
    • Conversation Starter
      johnwin1 earned a badge
      Conversation Starter
    • One Month Later
      Marwin earned a badge
      One Month Later
    • One Year In
      fred8615 earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      242
    2. 2
      snowy owl
      156
    3. 3
      ATLien_0
      144
    4. 4
      +FloatingFatMan
      138
    5. 5
      Xenon
      132
  • Tell a friend

    Love Neowin? Tell a friend!