- Я работаю в общем диске на сервере.
- Иногда люди используют его подключенный диск,
Q:\Folder\Subfolder\Etc\
- В других случаях люди используют его UNC-путь,
\\server.com\shared
data\Folder\Subfolder\Etc\
У меня есть пакетный файл, который принимаетАргумент путей файла (ов) (обычно нескольких файлов) сбрасывается на него.Затем он передает их в сценарий PowerShell.
Однако, когда кто-то удаляет файлы из папки, доступ к которой осуществляется по его UNC-пути, появляется barfs:
'\\server.com\shared data\Folder\Subfolder\Etc'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
Как заменить \\server.com\shared data\
на Q:\
для каждого имени файла вАргумент?Мой сценарий PowerShell выполняет всю обработку, поэтому я хочу исправить ее до того, как она будет отправлена в PowerShell.
Я могу запустить команду cls в начале начала пакета, чтобы убрать предупреждение,Я не могу изменить реестр для этого случая.
@echo off
Title Pass arguments from this Batch script to PowerShell script of same name
rem
rem Batch Handler of Command Line Arguements for Microsoft Windows
rem Enables Passing Command Line Arguements to PowerShell Script
rem
rem The name of the script is drive path name of the Parameter %0
rem (= the batch file) but with the extension ".ps1"
set PSScript=%~dpn0.ps1
set args=%1
:More
shift
if '%1'=='' goto Done
set args=%args%, %1
goto More
:Done
powershell.exe -NoExit -Command "& '%PSScript%' '%args%'"
Итак, я надеюсь, что есть способ не допустить, чтобы скрипт PowerShell .ps1 не видел \\server.com\shared data\
, а просто позволил ему увидеть Q:\
.