sqlplus – SQL*Plus 18/19 on Windows: Cannot access SQL scripts

I have this very strange observation on my Windows 10×64 machine:

Given the following script file (file name test.sql):

DEFINE SYS_NAME = &1
DEFINE SYS_PWD = &2
DEFINE ORACLE_HOME = &3

CONNECT &SYS_NAME/&SYS_PWD@//localhost:1521/xe AS SYSDBA

SET VERIFY OFF
SET SERVEROUTPUT ON
-- SET FEEDBACK OFF

WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;

---- enable DBMS_OUTPUT ---------
ALTER SESSION SET CONTAINER=CDB$ROOT;
@&ORACLE_HOME/rdbms/admin/dbmsotpt.sql

---- run SQL scripts ---------
BEGIN
  DBMS_OUTPUT.PUT_LINE('Database script initialization finished.');
  DBMS_OUTPUT.PUT_LINE('');
  END;
  /

DISCONNECT

@aaaaaaaaaaaa

EXIT

When I call this script with appropriate arguments, like:

sqlplus -S /nolog '@C:Tempsqltest.sql' sys *** 'C:appMeproduct18.0.0dbhomeXE'

Using SQL*Plus 19.11.0.0.0 I get this output (translated from German):

Session changed.

OS Message: No such file or directory

Using SQL*Plus 18.4.0.0.0 I get this output (again, translated from German):

Session changed.


Session changed.


Type created.


Package created.


Synonym created.


Synonym created.


User access granted.


User access granted.


Session changed.

Database script initialization finished.

PL/SQL Procedure successfully finished.

So, using SQL*Plus 19.11.0.0.0, neither the built-in SQL Script nor my script (@aaaaaaaaaaaa for demonstration purposes) is getting called.

Using SQL*Plus 18.4.0.0.0, the built-in SQL Script seems to be getting called, but my script (@aaaaaaaaaaaa for demonstration purposes) is not getting called.

Why isn’t this working?