batch find file, replace with another file, that is supplied - batch-file

I need help creating a batch file to find multiple files named the same thing in 100's of files and replace the with a different file...
Alternatively, is there a program that will do this if I select the 2 different files that will search and replace them...
Find file from computer Pairing = High School DxD - Kuroka.png
Replace file with Pairing = High School DxD - Kuroka (F).jpg

Since you never provided the basic information such as What directory you wish to start a search from or You wish to convert or just rename, I will assume you wish to search your photo's folder (Including sub-directories) and simply rename file.jpg to file.png.
To search photo's and all its directories we can use the FOR /R to search for all .jpg files and DO to address the action. The script bellow will do the following.
Search and replace all .jpg extensions to .png in the photo folder directory
Batch Script:
#ECHO ON
#CD C:\Users\%username%\Pictures
For /r %%A In (*.jpg *.jpeg) Do ren "%%A" "*.png"
goto :eof

Related

How do I use a Batch Script to Move Specific Files with Specific File Contents

I am looking to find a file with the contents 'Radiac' in one particular folder and then move all those files to a another folder.
For example: I have might have 3 identical file-names with different extensions like below. Let's say, the content Radiac is only in the jones.pdf file. What I am looking to do is find the file-name with this specific content then xcopy this filename.. and its associated extensions to another folder.
jones.pdf
jones.xml
jones.txt
jones.doc
I was able to accomplish that with the following script:
for /f "delims=" %%a in ('findstr /m /c:"Radiac" *.*') do ^
xcopy "%%a" "C:\"path\to\my\folder"
However, I was unable to move files with the .pdf extension. Is there script that will move any file regardless of their extension? I am new to batch scripting so excuse me if I miss anything.
Thanks

Batch file to upload each numbered file to a different FTP folder

I need to write a batch file that uploads two files via FTP to different folders.
Example: filename_0001.txt copy to folder1 on server1 filename_0002 copy to folder2 on server1.
The names of target files are fixed.
My current batch file uploads only the first file that has the lower number -the only difference in the filenames are the numbers, that are changed daily.
user name >>script.txt
%1 >>script.txt (password as parameter to batch file)
put filename_????.txt folder1
ftp -s:script.txt [server name]
How can the other file with higher number be uploaded? I thought of checking the file names and then put them in the script. Can anyone tell any command to do that?
I need something like this:
put filename_????+1.txt folder2
Prepare a text file (folders.txt) with a sorted list of folders to use, like:
folderA
folderB
folderC
folderD
From a batch file save a sorted list of files to upload to another file (files.txt). Merge the two files together as described in question Combining multiple text files into one.
The code would be like:
#echo off
dir /ON /B filename_????.txt > files.txt
setlocal EnableDelayedExpansion
3< folders.txt (for /F "delims=" %%a in (files.txt) do (
set /P FOLDER=<&3
echo put %%a !FOLDER!
))
The output will be like:
put filename_4100.txt folderA
put filename_4101.txt folderB
put filename_4102.txt folderC
put filename_4103.txt folderD
It won't work when number of digits in filenames is different, as filename_10000.txt will be sorted before filename_9999.txt. For possible improvement, see Naturally Sort Files in Batch

How to run a batch file on all sub directories within a directory?

I have a batch file (ReduceFLACPadding.bat) to reduce padding in all FLAC files within a directory using metaflac.exe
These FLAC files are stored in subdirectories (one per album) within the directory E:\FLAC Library
At the moment I am processing my FLAC files one album at a time, moving the batch file to the targeted subdirectory each time. (The batch file is set to process all FLAC files within a directory)
My question is; is there a way to run this batch file on all the *.FLAC files in all the subdirectories of E:\FLAC in one go?
Please let me know if you need any more information
Windows 7
I would change the command that finds the *.flac files to find it recursively rather than running the batch file itself on every directory.
for /r "e:\flac" %%a in (*.flac) do echo metaflac "%%~fa" "%%~da" "%%~pa" "%%~na" "%%~xa" "%%~nxa"
should provide at least a clue. Without an example metaflac command, a more precise response would take excessive research.
From the prompt, try for /? for details. I've just shown with an echo how to construct some possible source/destination components - the rest is a matter of judicious adhesion of strings. Note the use of quotes however to properly cater for spaces in file/directorynames

.bat coding or some app maybe?

how can I organize my directories automatically?, I have a "downloads" folder, which currently contains lots of different info, for example, work related info, tv-shows, movies, etc, software, etc.
How can I automatically, maybe using some .bat execution, not sure, check for example the name of the files, or the type, and put them in the right subfolders?.
Thanks!.
You can use the move command to move files. You can also use wildcards in it.
So you could write a batch script that looks something like this:
cd C:\Users\You\Downloads
rem Excel sheets are work.
move *.xls Work
rem Reports are work.
move Report*.pdf Work\Reports
rem Pron and other viewing material ;)
move *.mp4 Private
You could run this script automatically by making it a scheduled job. Note that this script changes to the right directory first and then moves items to a relative subdirectory. This means that the directories Work, Work\Reports and Private must exist in the Downloads directory.
Of course you can expand the script to make it check and create directories as well, or you can specify different paths if you want to move the files out of the Downloads directory.
Basically, try to do it on the command line and then try to generalize those steps into your script.
This batch file will create a set of folders like .mkv .jpg .mp3 using the filetypes inside the folder, and move the files into the appropriate folders.
Launch it from your desktop and change the "c:\media" to the right folder name.
#echo off
cd /d "c:\media" && for %%a in (*) do md "%%~xa" 2>nul & move "%%a" "%%~xa" >nul

Folder Names Based on Filenames

This isnt really a coding question. I need to put all my files into individual directories so each file has its own directory with the name based on the filename.
So before i go make an application to do this, does anyone know any software that can do this? like Automator or something.
No need to build an application. This simple one liner run from the Windows command line will move each file in a directory into a sub-directory based on the root name of the file.
for %f in (*) do #(md "%~nf"&move "%f" "%~nf")>nul 2>&1
Two files with the same base name but different extensions will be moved into the same directory. For example, "test.txt" and "text.doc" will both be moved into a directory named "test"
Any file without an extension will not be moved.
If you want to run this from a batch file, then
#echo off
for %%f in (*) do (
md "%%~nf"
move "%%f" "%%~nf"
) >nul 2>&1
You requirements were not very clear. If your requirements differ, then the script can probably be modified fairly easily to suit your needs.

Resources