how to invoke DOS commands thru powershell on a shared drive

Welcome Forums General PowerShell Q&A how to invoke DOS commands thru powershell on a shared drive

Viewing 0 reply threads
  • Author
    • #5211
      Topics: 1562
      Replies: 0
      Points: 1
      Rank: Member

      by LeeC at 2012-10-18 12:21:35

      I wrote a sizable number of code components to perform a number of tasks around the office for the sake of automation; originally, I had them all on my local hard drive, and things were peachy keen.

      Then I had folks ask if they could run my scripts themselves. "Certainly," I said.

      Rather than copy the code to each person’s system, it makes sense to store it locally on a network drive. As background, a lot of what happens is REST calls using CURL to a cloud-hosted application. The problem began to appear:

      First, to call curl.exe, I’m creating a string called $URL which looks like (for example) "’-X PUT –data @SetReporter.json … e/’+$Issue and then
      cmd /c "curl.exe $URL"

      I had to do this because several hours of trial and error convinced me that I couldn’t effectively use the ampersand with a string, and I had to have a string to pass to CURL. However, now that it’s on a shared drive, I’m getting
      "CMD.EXE was started with the above path as the current directory.
      UNC paths are not supported. Defaulting to Windows directory."

      Second, and it’s related, I can’t call a java jar file using a batch file, for the same reason. I can’t find anything that suggests I can pass parameters to CMD to change the current directory (nor am I certain I could do so and invoke an executable on a shared drive.)

      Suggestions, anybody?


      by nohandle at 2012-10-19 03:36:05

      maybe i am oversimplifying the problem but:
      The cmd does not support \\unc\paths only m:\apped\drives.
      map the drive as a letter and retest

      btw invoking the curl.exe directly from powershell is not possible? &curl "argument argument" ?

      or in powershell 3 &curl –% argument argument

      by figueroa2david at 2012-10-23 15:57:56

      The easiest way to do this with a cmd.exe environment is to use a pushd entry.
      Pushd will change directories, including drive letters, and if you supply a UNC path, it will automatically map a drive, starting with z: and working backwards.

      In your case you might do something like create a batch file and use it..
      cmd.exe /c ‘mybatch.cmd "$URL"’

      mybatch.cmd would contain:
      pushd \\server\share
      curl "%1"

Viewing 0 reply threads
  • The topic ‘how to invoke DOS commands thru powershell on a shared drive’ is closed to new replies.