# Batch file

A batch file is a Windows command-shell script used to automate tasks; batch program filenames use .bat or .cmd extensions.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A sample use of the winstart.bat file in Windows 95

DevFeed: [A sample use of the winstart.bat file in Windows 95](<https://devfeed.tech/articles/a-sample-use-of-the-winstart-bat-file-in-windows-95-21758.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/oldnewthing/20260908-00/?p=112679>)

Author: Raymond Chen

Published: 2026-09-08T14:00:00Z

Content type: article

Language: en

Sources: [Raymond Chen](<https://devfeed.tech/sources/raymond-chen.md>)

Topics: [Windows](<https://devfeed.tech/topics/windows.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [display](<https://devfeed.tech/tags/display.md>), [driver](<https://devfeed.tech/tags/driver.md>), [drivers](<https://devfeed.tech/tags/drivers.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [history](<https://devfeed.tech/tags/history.md>), [multitasking](<https://devfeed.tech/tags/multitasking.md>), [old-new-thing](<https://devfeed.tech/tags/old-new-thing.md>), [post](<https://devfeed.tech/tags/post.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The article explains a sample use of winstart.bat in Windows 95: starting the TIGA Communications Driver so 16-bit Windows can use high-resolution graphics modes. It notes that MS-DOS programs could not use TIGA modes and that multitasking TIGA graphics across Windows and MS-DOS sessions was unsupported.

### Source excerpt

For a driver that needs high resolution mode only in Windows. The post A sample use of the <CODE>winstart.bat</CODE> file in Windows 95 appeared first on The Old New Thing.

## Behind the console: An AiTM phishing kit harvesting AWS console credentials and beyond

DevFeed: [Behind the console: An AiTM phishing kit harvesting AWS console credentials and beyond](<https://devfeed.tech/articles/behind-the-console-an-aitm-phishing-kit-harvesting-aws-console-credentials-and-beyond-8279.md>)

Original publisher: [Read original article](<https://securitylabs.datadoghq.com/articles/behind-the-console-aws-aitm-phishing-kit-and-beyond/>)

Author: Datadog

Published: 2026-06-24T00:00:00Z

Content type: article

Language: en

Sources: [Datadog Security Labs](<https://devfeed.tech/sources/datadog-security-labs.md>)

Topics: [Adversary-in-the-middle (AiTM)](<https://devfeed.tech/topics/adversary-in-the-middle-aitm.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Security](<https://devfeed.tech/topics/security.md>), [MFA](<https://devfeed.tech/topics/mfa.md>), [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [VirusTotal](<https://devfeed.tech/topics/virustotal.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [Amazon Route 53](<https://devfeed.tech/topics/amazon-route-53.md>)

Tags: [adversary-in-the-middle-aitm](<https://devfeed.tech/tags/adversary-in-the-middle-aitm.md>), [aws](<https://devfeed.tech/tags/aws.md>), [batch](<https://devfeed.tech/tags/batch.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [dns](<https://devfeed.tech/tags/dns.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mfa](<https://devfeed.tech/tags/mfa.md>), [security](<https://devfeed.tech/tags/security.md>), [virustotal](<https://devfeed.tech/tags/virustotal.md>)

### AI overview

Datadog Security Research analyzes a June 2026 campaign using cloned AWS console login pages and adversary-in-the-middle techniques to harvest credentials and MFA codes. The article details the phishing infrastructure, delivery methods, VirusTotal artifact, and JavaScript-based credential-harvesting flow.

### Source excerpt

Datadog Security Research investigates a June 2026 adversary-in-the-middle phishing campaign that cloned the AWS console login page to harvest victim credentials and multi-factor authentication codes.

## The (Petty) Reason We Didn't End Up Using jj

DevFeed: [The (Petty) Reason We Didn't End Up Using jj](<https://devfeed.tech/articles/the-petty-reason-we-didn-t-end-up-using-jj-24697.md>)

Original publisher: [Read original article](<https://blog.gradle.org/the-petty-reason-we-didnt-end-up-using-jj-at-gradle>)

Author: Laura Kassovic

Published: 2026-06-02T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [git](<https://devfeed.tech/tags/git.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [version-control](<https://devfeed.tech/tags/version-control.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The article explains why Gradle did not adopt Jujutsu (jj) as a replacement for Git in a developer's workflow. The blocker is Jujutsu's lack of support for the per-file line-ending rules in .gitattributes, which causes persistent phantom modifications to gradlew.bat in Gradle repositories.

### Source excerpt

Jujutsu (jj) has been picking up steam as a Git-compatible version control system. When used with its Git backend, jj stores commits and files in Git and works with existing Git repositories, but it does away with the staging area so your working copy is represented as a real commit that updates as you go. Rewriting history is cheap and safe: edit or reorder a commit and jj rebases its descendants for you; conflicts can be recorded instead of halting the operation; and operations can be undone from the operation log. Recently, one of our engineers set out to replace git with jj in their day-to-day flow. Unfortunately, it didn't work out. Not because of anything fundamental about jj's model, but because of a small detail of how Gradle projects are shaped on disk. This is worth writing down, because we suspect a lot of teams in the JVM ecosystem will hit the same wall. The actual blocker: gradlew.bat and .gitattributes A typical Gradle repository ships the Gradle Wrapper, which usually includes gradlew.bat. That script uses labels and goto, which cmd.exe can mishandle when a batch file has LF-only line endings, so gradlew.bat has to be checked out with CRLF to run reliably on Windows. We enforce this with .gitattributes, a file that tells Git how to handle specific files or paths, controlling things like line-ending normalization and whether files are treated as binary or text: *.bat text eol=crlf This is standard Git behavior: the file is stored normalized in the index, and the eol=crlf attribute tells Git to materialize CRLF in the working copy on checkout. Edits are normalized back on the way in. You forget about it after the first commit. jj doesn't read .gitattributes, so it can't apply a per-file rule. There's a long-standing issue (jj-vcs/jj#53) tracking support for at least the eol attribute, but until it lands jj's only lever is the global working-copy.eol-conversion setting. That's the rough equivalent of Git's core.autocrlf: it applies to every file at once

## Analyzing and Detecting a VMTools Persistence Technique

DevFeed: [Analyzing and Detecting a VMTools Persistence Technique](<https://devfeed.tech/articles/analyzing-and-detecting-a-vmtools-persistence-technique-20503.md>)

Original publisher: [Read original article](<https://bohops.com/2021/10/08/analyzing-and-detecting-a-vmtools-persistence-technique/>)

Author: bohops

Published: 2021-10-08T03:42:18Z

Content type: tutorial

Language: en

Sources: [Bohops](<https://devfeed.tech/sources/bohops.md>)

Topics: [Persistence](<https://devfeed.tech/topics/persistence.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Process](<https://devfeed.tech/topics/process.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Utility Software](<https://devfeed.tech/topics/utility.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [payload](<https://devfeed.tech/tags/payload.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [process](<https://devfeed.tech/tags/process.md>), [script](<https://devfeed.tech/tags/script.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [utilities](<https://devfeed.tech/tags/utilities.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This article analyzes a VMware Tools persistence technique on Windows virtual machines. It explains how VMwareToolBoxCmd.exe and the tools.conf file can configure batch scripts to run during VM power-state operations, and discusses detection strategies. The demonstrated payload runs as a child process of vmtoolsd.

### Source excerpt

Introduction It is always fun to reexplore previously discovered techniques or pick back on old research that was put on the wayside in hopes to maybe finding something new or different. Recently, I stood up an ESXi server at home and decided to take a quick peak at the VMware directory structure after installing the [...]

## Python Techniques for Batch Files, Context Managers, and Command-Line Arguments

DevFeed: [Python Techniques for Batch Files, Context Managers, and Command-Line Arguments](<https://devfeed.tech/articles/a-heaping-helping-of-python-goodness-32195.md>)

Original publisher: [Read original article](<https://bruceeckel.com/2014/12/05/a-heaping-helping-of-python-goodness/>)

Author: Bruce Eckel

Published: 2014-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Bruce Eckel - Computing Thoughts](<https://devfeed.tech/sources/bruce-eckel-computing-thoughts.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [python](<https://devfeed.tech/tags/python.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial-style article describing Python techniques for repetitive tasks, including running a Python program from a Windows batch file, using a context manager to restore a working directory, and command-line arguments.

### Source excerpt

I really enjoy solving problems quickly and thoroughly. I especially enjoy solving annoying, repetitive problems that invite human error. The icing on the cake is when I learn some new tricks in the process. This last few days was a flurry of problem-solving and trick-learning. My favorite tricks are small bits of learning that make code easier to write, read and use. A couple of these are Windows-specific but most are general.

## GPO: Instalacja GIMP'a 2.8

DevFeed: [GPO: Instalacja GIMP'a 2.8](<https://devfeed.tech/articles/gpo-instalacja-gimp-a-2-8-27572.md>)

Original publisher: [Read original article](<https://gagor.pro/2013/08/gpo-instalacja-gimpa-2-8/>)

Author: Tom

Published: 2013-08-06T00:00:00Z

Content type: tutorial

Language: pl

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Batch file](<https://devfeed.tech/topics/batch-file.md>), [active directory](<https://devfeed.tech/topics/active-directory.md>), [enterprise deployment](<https://devfeed.tech/topics/enterprise-deployment.md>), [Script](<https://devfeed.tech/topics/script.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [active-directory](<https://devfeed.tech/tags/active-directory.md>), [code](<https://devfeed.tech/tags/code.md>), [gpo](<https://devfeed.tech/tags/gpo.md>), [install](<https://devfeed.tech/tags/install.md>), [installation](<https://devfeed.tech/tags/installation.md>), [policies](<https://devfeed.tech/tags/policies.md>), [startup](<https://devfeed.tech/tags/startup.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A Polish tutorial explains how to deploy GIMP 2.8 through an Active Directory Group Policy startup script on Windows. The batch script checks whether GIMP is installed, silently removes an earlier manually installed version, and installs GIMP 2.8 from a network share.

### Source excerpt

Raz na jakiś czas trzeba coś niestandardowego wrzucić do instalacji w Active Directory a że nie wszystkie aplikacje mają dostępne paczki MSI to trzeba się nieco natrudzić. Poniżej wrzucam skrypt, który instaluje GIMP'a 2.8 z domyślnego instalatora (wersja InnoSetup) przy okazji odinstalowując wcześniejsze wersje zainstalowane ręcznie. Zapisujemy poniższy kod jako np. gimp-install.cmd @echo off REM Installs GIMP cls echo ---------------------------------------------------- echo . echo . echo . Installing/Updating GIMP - Please Wait echo . echo . echo ---------------------------------------------------- REM Test if actual IF exist "%ProgramFiles%\GIMP\bin\gimp-2.8.exe" GOTO SkipInstall REM Exit the application taskkill.exe /F /FI "IMAGENAME eq gimp-2.8.exe" >nul REM Uninstall existing GIMP version, delete folder if exist "%ProgramFiles%\GIMP 2\uninst\unins000.exe" "%ProgramFiles%\GIMP 2\uninst\unins000.exe" /VERYSILENT :: Wait for 20 seconds ping -n 40 127.0.0.1 > NUL if exist "%ProgramFiles%\GIMP 2\" rd "%ProgramFiles%\GIMP 2\" /Q /S REM Install new version "\\serwerplikow.local\Instalki\GIMP\gimp-2.8.4-setup.exe" /VERYSILENT /NORESTART /DIR="%PROGRAMFILES%\GIMP 2.8" REM Skip installation if acctuall :SkipInstall REM Return exit code to SCCM exit /B %EXIT_CODE% Tworzymy nową regułkę GPO i zmierzamy do: Computer Configuration\Policies\Windows Settings\Scripts\Startup W nowym okienku wybieramy Show Files... Wklejamy plik skryptu do tego folderu i teraz możemy dodać go w tym samym oknie (Add...) - dzięki wrzuceniu skryptu w tym miejscu będzie się on automatycznie replikować na inne kontrolery. Skrypt będzie co prawda uruchamiany przy każdym starcie komputera ale pierwszy warunek będzie sprawdzać czy aplikacja jest zainstalowana więc nie spowolni to znacznie startu.

## Deploying: Git vs. TFS Showdown

DevFeed: [Deploying: Git vs. TFS Showdown](<https://devfeed.tech/articles/deploying-git-vs-tfs-showdown-21173.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2012/11/deploying-git-vs-tfs-showdown/>)

Published: 2012-11-15T00:00:00Z

Content type: comparison

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [batch](<https://devfeed.tech/tags/batch.md>), [build](<https://devfeed.tech/tags/build.md>), [compression](<https://devfeed.tech/tags/compression.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [visual-studio](<https://devfeed.tech/tags/visual-studio.md>), [vs](<https://devfeed.tech/tags/vs.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This comparison examines a deployment workflow using Git versus TFS. It describes an automated batch script that clears and compresses frontend and library files, then compares how Git and TFS handle the resulting file changes. The text says GitHub Client recognizes the changes for committing and pushing, while TFS requires a check-in workflow involving TFS Power Tools.

### Source excerpt

Lorem ipsum dolor sit amet

## Utrzymanie przy życiu sypiących się usług na serwerach Windows

DevFeed: [Utrzymanie przy życiu sypiących się usług na serwerach Windows](<https://devfeed.tech/articles/utrzymanie-przy-zyciu-sypiacych-sie-us-ug-na-serwerach-windows-27548.md>)

Original publisher: [Read original article](<https://gagor.pro/2012/10/utrzymanie-przy-zyciu-sypiacych-sie-uslug-na-serwerach-windows/>)

Author: Tom

Published: 2012-10-22T00:00:00Z

Content type: tutorial

Language: pl

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Windows](<https://devfeed.tech/topics/windows.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [tools](<https://devfeed.tech/tags/tools.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A practical guide to keeping unstable Windows services running. It explains why built-in restart settings may be insufficient and presents a script-based service monitor that checks a service and attempts to start it when necessary, including installation, removal, delayed startup, and monitoring-frequency recommendations.

### Source excerpt

Zdarzyło mi się kilka usług działających na serwerach Windows, które zwyczajnie sypały się i to tak brzydko że systemowe ustawienia by restartowały się po padzie nie wystarczały. Usługa działała np. 3 godziny by potem się położyć, albo nigdy nie wstawała po starcie systemu - po prostu jakaś masakra. Zgłoszenia do producenta często wyglądały tak że w jego testowym środowisku błędu nie udaje się powtórzyć (i nic dziwnego bo nie sądzę by z ich konfiguracji korzystali rzeczywiści użytkownicy). Oczywiście można zaczekać aż ukaże się magiczna łata usuwająca błąd ale do tego czasu to na nas wszyscy będą "wieszać psy" za niedostępność usługi.

## Saving your time: how to work with large reference databases on WP7

DevFeed: [Saving your time: how to work with large reference databases on WP7](<https://devfeed.tech/articles/saving-your-time-how-to-work-with-large-reference-databases-on-wp7-38410.md>)

Original publisher: [Read original article](<https://khmylov.com/2011/11/saving-your-time-how-to-work-with-large/>)

Author: Andrew Khmylov

Published: 2011-11-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Despite the odds](<https://devfeed.tech/sources/despite-the-odds.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Script](<https://devfeed.tech/topics/script.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Visual Studio](<https://devfeed.tech/topics/visual-studio.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [databases](<https://devfeed.tech/tags/databases.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [development](<https://devfeed.tech/tags/development.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [saving](<https://devfeed.tech/tags/saving.md>), [script](<https://devfeed.tech/tags/script.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>)

### AI overview

This tutorial explains how to speed up development deployments of a large read-only SQL Server CE reference database on Windows Phone 7. It compares isolated storage with packaging the database in the XAP file, then presents a batch-script approach for uploading the database to an emulator and configuring different debug and release behaviors.

### Source excerpt

In the previous post I showed how to load the large SQL Server CE database on WP7. However, if you are working with a read-only reference database, deploying it to the phone or emulator may take up to several minutes. In this post I will try to explain how to save your nerves and time, making the regular development and debugging easier. So for now, there are 2 options for deploying the database with your app: Use Isolated Storage. Upload the database to the device with the help of ISETool. For ~50 mb database it takes 4 minutes on my laptop. Pack it as the application content (setting Build Action to Content). In that case, the database is packed into the XAP file on your machine and then unpacked back on the device. While this approach is a bit faster then the first one, it still takes something about 1 minute to deploy your app, which I find unacceptable. Note that the 1st option should be used only for Debug configurations. The only way to include the reference database when delivering the app to the users is by packing it into the XAP (you may, however, copy it to Isolated Storage upon the first launch, but I don't see any sense why should you do so). So I can't fasten the packaging process, but I can upload my database to the Isolated Storage once and it will be preserved between the application deploys when debugging. When I need to release the application build, I will include the database to XAP file content. Sounds easy. Being lazy motivates me to script the uploading routine. Here is a batch file that takes the IS snapshot with ISETool, adds the database file and restores the snapshot on the emulator: set isePath="C:Program Files (x86)Microsoft SDKsWindows Phonev7.1ToolsIsolatedStorageExplorerToolISETool.exe" set tempPath="C:TempDatabaseIS" set dbPath="your_db_path" set appId=your_app_id %isePath% ts de %appId% %tempPath% copy %dbPath% %tempPath% %isePath% rs de %appId% %tempPath% In the snippet above you need to replace your_db_path with the path to your