I have many *.bat scripts that I would like to create a GUI for now that I'm learning c#.
The problem is, they just won't execute.
Is there another way I should do this?
StreamWriter maybe or am I forced to just execute a bat file from the windows forms?
Here is one of my *.bat files.
setlocal enabledelayedexpansion
for %%j in (*.*) do (
set filename=%%~nj
set filename=!filename:.=.!
set filename=!filename: =.!
if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
Echo "!filename!%%~xj"
)
I've tryed all different things, add /c to it, using escape sequenses on every line, using @ infront etc.
I've been told to only use one % in the varibles so that's what I do.
This just gives me "The system cannot find the file specified.".
p.StandardInput.WriteLine("setlocal enabledelayedexpansion");
p.StandardInput.WriteLine("for \"" + myPath + "\" %j in (*.*) do (");
p.StandardInput.WriteLine("set filename=%~nj");
p.StandardInput.WriteLine("set filename=!filename:.=.!");
p.StandardInput.WriteLine("set filename=!filename: =.!");
p.StandardInput.WriteLine("if not \"!filename!\"==\"%~nj\" ren \"%j\" \"!filename!%~xj\"");
p.StandardInput.WriteLine("Echo \"!filename!%~xj\" )");
Here is another try I did, adding & after every command, even tryed && and ||.
This just shuts down before I see any error messages.
psi.Arguments = "/c \"@echo off & setlocal enabledelayedexpansion & for \"" + myPath + "\" %j in (*.*) do ( & set filename = %~nj & set filename = !filename:.=.! & set filename = !filename: =.! & )";