in reply to Re^3: moving from mac to PC
in thread moving from mac to PC

I suspect that this is related to internal commands infact when you say individual program i suspect that internal commands do not like slashes, while all other ones accept both slashes and backslashes.

See ss64.com where internal commands have a dot after the name.

Given that dir and type are internal commands and ls (UnxUtils version) and icacls are not, you can see the difference:

# dir not OK perl -wMstrict -le "my $path = 'c:/scripts/resized';my @dirs = `dir $p +ath`;print qq(@dirs)" Formato del parametro non corretto - "scripts". # ls OK perl -wMstrict -le "my $path = 'c:/scripts/resized';my @dirs = `ls $pa +th`;print qq(@dirs)" # OK long output omitted #type not OK perl -wMstrict -le "my $path = 'c:/scripts/resized/zen-small.pl';my @d +irs = `type $path`; print qq(@dirs)" c:/scripts/resized/zen-small.pl not found # icacls OK perl -wMstrict -le "my $path = 'c:/scripts/resized';my @dirs = `icacls + $path`;print @dirs" c:/scripts/resized BUILTIN\Administrators:(I)(F) BUILTIN\Administrators:(I)(OI)(CI)(IO)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F) BUILTIN\Users:(I)(OI)(CI)(RX) NT AUTHORITY\Authenticated Users:(I)(M) NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M) Elaborazione completata per 1 file. Elaborazione non riuscita per 0 fi +le

is fun also to see different languages for errors issued (italian coming from the OS and english).

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^5: moving from mac to PC -- win internal commands
by RonW (Parson) on Oct 28, 2016 at 18:19 UTC
    I suspect that this is related to internal commands infact when you say individual program i suspect that internal commands do not like slashes, while all other ones accept both slashes and backslashes.

    Actually, some MSWindows-centric programs also don't accept / in file paths. For example, last time I used Beyond Compare's CLI, it choked on / even when it was a path like "c:/path/to/file.ext".

    BTW, in MS-DOS, there was system call to change the "option switch" character. I don't remember what it was, but back when I had to use Win95, one of my mentors told me about it. Made the Win95 experience tolerable for me. Later, I discovered Cygwin.

      in MS-DOS, there was system call to change the "option switch" character. I don't remember what it was

      API: int 0x21, ax=0x3700 = Get Switch Character, int 0x21, ax=0x3701 = Set Switch Character. Both available since MS-DOS 2.0, ignored since MS-DOS 4.01, changed to always return "/" since MS-DOS 5, DR-DOS 3.41 to 6.0.

      Anchient DOS versions (MS DOS 2.x and some OEM versions) allowed setting the switch character in config.sys by setting SWITCHAR=x.

      So yes, you could change the switch character (before MS-DOS 5), but most programs ignored it, and for those few which followed it, you had to rewrite batch files to use your switch character instead of the standard "/". Update to MS-DOS 5.0 would require another rewrite back to "/".

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)