Пакетный сценарий Сохранение на CD? - PullRequest
0 голосов
/ 08 сентября 2018

В основном у меня все в моем скрипте работает, и он сохраняет текстовый файл на диск c: / со строкой

">> c: /information.txt"

Но я бы хотел сохранить его в том месте, где он был открыт.

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

%~dp0 работает только внутри скриптов .bat. Он не будет работать в интерактивной командной строке.

@ECHO OFF
(ECHO Hello World)>>"%~dp0information.txt"
0 голосов
/ 10 сентября 2018

Я понял мою конкретную проблему. Все осталось прежним, за исключением того, что я удалил "c: /" Я добавил «Pushd% ~ dp0» в начало моего скрипта.

0 голосов
/ 08 сентября 2018

Вы можете сделать это с относительным путем [1], который является путем относительно текущего местоположения:

echo Hello World >>"information.txt"

Вы можете сделать это и с абсолютным путем. Путь к пакетному файлу хранится в %0 (= первый аргумент каждого пакетного файла) [2] и может быть изменен на диск %~d0 и путь %~p0 пакетного файла. Вы можете легко объединить оба, чтобы получить путь с дисководом: %~dp0. [3]

echo Hello World >>"%~dp0information.txt"

В большинстве случаев оба метода будут действовать одинаково, но я рекомендую использовать второй метод, поскольку текущий каталог не всегда является каталогом пакетного файла: если вы выполняете пакет из другого каталога (с другим пакетом для пример) вы получаете это как каталог для относительных путей.


[1] https://en.wikipedia.org/wiki/Path_(computing)#Absolute_and_relative_paths

[2] http://www.robvanderwoude.com/parameters.php

[3] полный список изменений, содержащихся в справке cmd для вызова и для команды: call/?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...