A few script requests within 1 post [SOLVED]
Moderator: DosItHelp
Re: A few script requests within 1 post (So I don't spam)
First Script Parts 1 and 2 work perfectly! (As expected) haha. Soooo much time saved!
Re: A few script requests within 1 post (So I don't spam)
Foxi is there a way to modify script 2 so that it's similar to script 1? It rips through the folders to find and remove special characters and then it goes through and does the filenames after that?
Re: A few script requests within 1 post (So I don't spam)
Deleted post - oops
Last edited by foxidrive on 26 Jul 2012 12:11, edited 1 time in total.
Re: A few script requests within 1 post (So I don't spam)
Script 2 and 3 also work perfectly
Re: A few script requests within 1 post (So I don't spam)
Glad to hear it. If you identify any characters that aren't renamed and adding them to the script doesn't help then let us know and perhaps an addition of some kind can be made.
Re: A few script requests within 1 post (So I don't spam)
see my next post below...
Last edited by foxidrive on 26 Jul 2012 23:59, edited 2 times in total.
Re: A few script requests within 1 post (So I don't spam)
foxidrive wrote:I think this is what you want - it should remove all special characters from folders, and replace & with and.
Then it will remove all special characters from files including &
It is not tested:Code: Select all
@echo off
del renitems3.bat 2>nul
for /f "delims=" %%a in ('dir /a:d /o:n /b /s') do call :next "%%a"
call renitems3.bat
del renitems3.bat 2>nul
for /f "delims=" %%a in ('dir /a:-d /o:n /b /s') do call :next2 "%%a"
call renitems3.bat
del renitems3.bat 2>nul
GOTO:EOF
:next
set "newname=%~nx1"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=and%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:!=%"
set "newname=%newname:-=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"
if not "%~nx1"=="%newname%" >> renitems3.bat echo ren %1 "%newname%
goto :EOF
:next2
set "newname=%~nx1"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:!=%"
set "newname=%newname:-=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"
if not "%~nx1"=="%newname%" >> renitems3.bat echo ren %1 "%newname%
Error: The system cannot find the file specified. Displays this 4 times roughly then closes.
Re: A few script requests within 1 post (So I don't spam)
I forgot the sort command - as noted in earlier posts. Try this:
I edited the batch file again to remove error messages when no folders or files were found to rename
I edited the batch file again to remove error messages when no folders or files were found to rename
Code: Select all
@echo off
del renitems3.bat 2>nul
for /f "delims=" %%a in ('dir /a:d /o:n /b /s ^|sort /r') do call :next "%%a"
if exist renitems3.bat call renitems3.bat
del renitems3.bat 2>nul
for /f "delims=" %%a in ('dir /a:-d /o:n /b /s') do call :next2 "%%a"
if exist renitems3.bat call renitems3.bat
del renitems3.bat 2>nul
GOTO:EOF
:next
set "newname=%~nx1"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=and%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:!=%"
set "newname=%newname:-=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"
if not "%~nx1"=="%newname%" >> renitems3.bat echo ren %1 "%newname%
goto :EOF
:next2
set "newname=%~nx1"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:!=%"
set "newname=%newname:-=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"
if not "%~nx1"=="%newname%" >> renitems3.bat echo ren %1 "%newname%
Re: A few script requests within 1 post (So I don't spam)
Receiving the same error.
My structure that is being tested is this:
c:\Test\Script2.bat
c:\Test\Folder_1
c:\Test\Folder_1\Subfolder_1
c:\Test\Folder_1\Subfolder_1\test$'.txt
c:\Test\Folder_&2\Subfolder_1
c:\Test\Folder_&2\Subfolder_1\test&'.txt
ERROR:
The system cannot find the file specified.
The system cannot find the file specified.
The system cannot find the file specified.
My structure that is being tested is this:
c:\Test\Script2.bat
c:\Test\Folder_1
c:\Test\Folder_1\Subfolder_1
c:\Test\Folder_1\Subfolder_1\test$'.txt
c:\Test\Folder_&2\Subfolder_1
c:\Test\Folder_&2\Subfolder_1\test&'.txt
ERROR:
The system cannot find the file specified.
The system cannot find the file specified.
The system cannot find the file specified.
Re: A few script requests within 1 post (So I don't spam)
Did you get the version above? I did edit the post a few times - it works here in my test.
Re: A few script requests within 1 post (So I don't spam)
Works. I must have missed something in my copy perhaps. Sorry about any confusion. Works great!
Re: A few script requests within 1 post (So I don't spam)
Fourth script also works like a dream!
Re: A few script requests within 1 post [SOLVED]
Thanks for the feedback. 
