The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Email Subscription

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 716 other subscribers

Archive for the ‘Batch-Files’ Category

Windows CSC reset: How to re-initialize the offline files cache and database (via MS Support)

Posted by jpluimers on 2014/03/27

Every once in a while, the local synchronization of offline files mismatches the actual files.

Time for a CSC reset.

Note: you need to be Local Administrator on the machin in order to reset the CSC cache.

Use Reg.exe

You can also automate the process of setting this registry value by using the Reg.exe command line editor. To do this, type the following command in the Reg.exe window:

REG.EXE. REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache" /v FormatDatabase /t REG_DWORD /d 1 /f

–jeroen

via: How to re-initialize the offline files cache and database.

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 7, Windows 8 | 2 Comments »

When GExperts for Delphi 2007 does not install itself in Delphi on Windows Vista/7/8

Posted by jpluimers on 2014/03/06

Like When DelphiSpeedup cannot register itself in Delphi on Windows Vista/7/8, GExperts also had problems installing on Windows Vista and up when Delphi runs in a non-elevated account.

It said it installed fine, but it didn’t get included when Delphi was started. The reason was that it got installed in the wrong root key.

What happened is that GExperts installed itself into the HKLM root:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\BDS\5.0\Experts]
GExperts=C:\Program Files (x86)\GExperts for Delphi 2007\GExpertsDelphi2007.dll

But it should have installed itself in the HKCU root: Read the rest of this entry »

Posted in Batch-Files, Delphi, Delphi 2007, Development, Scripting, Software Development | Leave a Comment »

Windows “FIND” console app: how to *not* have the dashed line with the filename in the output

Posted by jpluimers on 2014/03/06

When using the Windows FIND console application, it will insert a dashed line

C:\Users\Developer>echo Foo > %temp%\foo.txt
C:\Users\Developer>find "Foo" %temp%\foo.txt
---------- C:\USERS\DEVELOPER\APPDATA\LOCAL\TEMP\FOO.TXT
Foo

This is really annoying when using FIND to parse files, and redirect the output fur further processing.

But there is a way around it, as find will not emit the dashed line when it the input is not a file, but stdin: Read the rest of this entry »

Posted in Batch-Files, Development, Scripting, Software Development | 1 Comment »

Downloading https urls from the commandline through cURL for Windows

Posted by jpluimers on 2014/01/27

Lately I moved more and more away from wget, mainly because out of the box, wget (and also aria2, which I like for the bittorrent support) handle https downloads so badly: you need to manually setup your CA store on each and every installed system.

Not so with cURL, especially not on Windows any more, as “recently” (that is: since the last time I examined it, which is over a year ago now), there is a new kid in town: cURL for Windows: a Windows Installer for the Web Transfer Tool.

You don’t even need to download the installer. Grabbing the stuff from the bin directory in the zip download is enough: it contains a prepackaged CA certificate set that works splendid.

So now downloading https://dl.google.com/update2/installers/ChromeStandaloneSetup.exe to the current directory is as simple as Read the rest of this entry »

Posted in *nix, Batch-Files, Development, Power User, Scripting, Software Development, wget, Windows | Tagged: , | Leave a Comment »

Different ways of sleeping/waiting in batch files

Posted by jpluimers on 2013/12/13

About a year and a half ago, I wrote about a Batch file to “Keep Alive” a CMAK generated VPN connection in Windows 7.

It uses ping to wait a certain amount of time, but it has the drawbacks of

  • requiring TCP/IP to be installed (which some headless systems don’t).
  • using N+1 as the number of seconds

Since then, I learned that since Windows Vista and up has timeout command that just waits:

timeout /t 600 /nobreak

Two parameters are used:

  • /nobreak
    does not stop waiting when you press a key
  • /t #
    waits # seconds

(the example is 10 minutes, I use it to regularly run FlushFileCache.exe or FlushMem.exe to empty the Windows file chache and release memory – often more than a gigabyte – back to Windows)

There is also sleep.exe, but that requires the Windows Resource Kit or Windows Server 2000/2003.

–jeroen

via:

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows | Tagged: | Leave a Comment »

Windows batch files: How to set a variable with the result of a command (via: Stack Overflow)

Posted by jpluimers on 2013/12/11

One of the easy things in *nix is to set the value of an environment with the output of a command.

Something like this is possible in Windows too, but you have to instruct Windows to keep an empty set of delimiters to capture the full first line.

There is also a small but important difference between Windows and *nix upon command failure: *nix will always return an empty value, but in Windows you must make sure to empty the value first.

Thanks Jesse Dearing for this summary: Read the rest of this entry »

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows | Leave a Comment »

shorter version of batch file: getting directory and parent directory

Posted by jpluimers on 2013/08/17

Two years ago, I posted a batch file that gets the parent directory of the batch file that runs.

It was convoluted, using substrings and intermediate environment variables so you needed setlocal.

This one does not any more: for both the directory of the batch file, and the parent directory of that directory, one-liners suffice:


echo batchfile=%0
echo full=%~f0
setlocal
for %%d in (%~dp0.) do set Directory=%%~fd
echo Directory=%Directory%
for %%d in (%~dp0..) do set ParentDirectory=%%~fd
echo ParentDirectory=%ParentDirectory%
endlocal

–jeroen

via: batch files: getting directory and parent directory « The Wiert Corner – irregular stream of stuff.

Posted in Batch-Files, Development, Scripting, Software Development | Tagged: , , , | 1 Comment »

command line – create empty text file from a batch file (via: Stack Overflow)

Posted by jpluimers on 2013/08/15

StackOverflow has [WayBack] quite a [WayBack] few questions [WayBack] on creating [WayBack] empty text files from a batch file.

Most answers involve the [WayBack] NUL special file (which is not available on one special version of Windows [WayBack] Windows Fundamentals for Legacy PCs, but can easily be retrofitted).

[WayBack] This is the solution I use most often:

type NUL > EmptyFile.txt

–jeroen

via: [WayBack] command line – How to create empty text file from a batch file? – Stack Overflow.

Posted in Batch-Files, Development, Scripting, Software Development | 2 Comments »

Remove the first 3 characters in var in batch file (via: Stack Overflow and Rob van der Woude)

Posted by jpluimers on 2013/08/13

Getting substrings in a batchfile requires you to use the %…:~…% syntax as explained by Rob van der Woude.

Note this only works on batch file variables, so not on batch/function arguments (%1, %2, …)and for-loop indexes (%%f, etc).

This code gets the leftmost three characters of var:

set var=%var:~3%
echo %var%

–jeroen

via Remove the first 3 characters in var in batch file? – Stack Overflow.

Posted in Batch-Files, Development, Scripting, Software Development | Leave a Comment »

Delphi XE4: installer batch file for “experimental GExperts + code formatter for Delphi XE4”

Posted by jpluimers on 2013/06/12

Slightly more than a month ago, Thomas Müller release the experimental GExperts + code formatter for Delphi XE4.

Since there is no official GExperts for Delphi XE4 build yet, his installation instructions include this:

Use the ExpertManager tool to register GExperts to Delphi XE4.

The thing is: ExpertManager is part of GExperts, so this introduces a “chichen-and-egg” situation.

So I wrote a small batch file and a bit of documentation to install it.

Just in case you cannot download that SVN changeset easily, here are the documentation and batch-file:

Documentation

Steps to install:
0- Quit Delphi XE4
1- Download the GExperts XE4 experimental from http://blog.dummzeuch.de/2013/04/28/experimental-gexperts-code-formatter-for-delphi-xe4/
2- Recursively unpack that download
3- Copy the batch file Install-GExperts-XE4-experimental–run-as-administrator-from-ExpertManager.exe-directory.bat into that directory
4- From that directory, run the copied Install-GExperts-XE4-experimental–run-as-administrator-from-ExpertManager.exe-directory.bat
5- Run Delphi XE4
6- Check if GExperts is installed

Batch file

[sourcecode language=”text”]
:: check if user is administrator

"C:\Windows\system32\cacls.exe" "C:\Windows\system32\config\system" 1>nul 2>&1 && (goto :isAdmin)
:isNoAdmin
echo you need to be Administrator, and (when under Vista or higher) run this using using UAC
goto :exit

:isAdmin

:: Gets the right link for x86 (32-bit) program files
IF /I %PROCESSOR_ARCHITECTURE% == amd64 goto :x64
IF /I %PROCESSOR_ARCHITEW6432% == amd64 goto :x64
goto :x86
:x64
:: OS is 64bit
set ProgramFilesX86=%ProgramFiles(x86)%
goto :continue
:x86
:: OS is 32bit
set ProgramFilesX86=%ProgramFiles%
goto :continue

:continue

:: create the right directory and copy the files

setlocal

set TargetDirectory=%ProgramFilesX86%\GExperts for RAD Studio XE4

mkdir "%TargetDirectory%"
:: set FilesToCopy=DbugIntf.pas ExpertManager.exe GExperts.chm GExpertsDebugWindow.exe GExpertsGrep.exe regularexpert\GExpertsRSXE4.dll Readme.txt preview.pas
set FilesToCopy=ExpertManager.exe GExperts.chm regularexpert\GExpertsRSXE4.dll preview.pas

for %%f in (%FilesToCopy%) do copy /y %%f "%TargetDirectory%\"
set RegFile="%TargetDirectory%\ExpertsXE4.reg"
:: explorer /select,"%TargetDirectory%\GExpertsRSXE4.dll"

:: expand backslash into double backslash for .REG file
set ExpertTarget="%TargetDirectory%\GExpertsRSXE4.dll"
set ExpertTarget=%ExpertTarget:\=\\%

::Windows Registry Editor Version 5.00
::
::[HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\Experts]
::"GExperts"="C:\\Program Files (x86)\\GExperts for RAD Studio XE4\\GExpertsRSXE4.dll"
::
echo Windows Registry Editor Version 5.00 >%RegFile%
echo. >>%RegFile%
echo [HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\Experts] >>%RegFile%
echo "GExperts"=%ExpertTarget% >>%RegFile%
echo. >>%RegFile%
:: explorer /select,%RegFile%
regedit /S %RegFile%

endlocal

goto :exit

:exit
[/sourcecode]

–jeroen

via: experimental GExperts + code formatter for Delphi XE4 « twm’s blog.

Posted in Batch-Files, Delphi, Delphi XE4, Development, Scripting, Software Development | 2 Comments »