[解決済み] cmdファイルにおける%と%%の違いは何ですか?
2022-12-03 19:36:55
質問
最近、.cmd ファイルにこのような行を含めました。
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
元々私は%fしか使っておらず、コマンドラインで実行するとうまくいくのですが、ファイルを通して実行するとうまくいきませんでした。 %%f に切り替えたら、ファイル内で動作しました。 ただ、この違いは何なのかが気になります。
どのように解決するのですか?
(詳細な説明は マイクロソフト KB のアーカイブ記事 .)
知っておきたい3つのこと
-
パーセント記号は、バッチ ファイルでコマンド ライン パラメータを表すために使用されます。
%1
,%2
, ... -
2つのパーセント記号とその間にある任意の文字は、変数として解釈されます。
echo %myvar%
-
2%記号
なし
の間にあるものは、(バッチファイルではなく)コマンドの1つのパーセント記号と同じように扱われます。
%%f
どうしてですか?
例えば、あなたの(簡略化した)コマンドラインを実行すると、次のようになります。
FOR /f %f in ('dir /b .') DO somecommand %f
をバッチファイルの中に入れてください。 ルール2 を解釈しようとします。
%f in ('dir /b .') DO somecommand %
を変数として使用することができます。それを防ぐためには、変数に
ルール3
を適用し、エスケープして
%
を、2つ目の
%
:
FOR /f %%f in ('dir /b .') DO somecommand %%f
関連
-
[解決済み] %~dp0とはどういう意味ですか、またどのように機能しますか?
-
[解決済み] Windowsのcmdの標準出力と標準エラー出力を1つのファイルにリダイレクトする
-
[解決済み] バッチファイルにおけるカレントディレクトリとは何ですか?
-
[解決済み] Windowsのコマンドラインで、現在の日付/時刻をファイル/フォルダー名で使用するために適切な形式で取得するにはどうすればよいですか?
-
[解決済み] Windowsでコマンドラインから空のファイルを作成するには?
-
[解決済み] バッチファイルでの変数の定義と使用
-
[解決済み】バッチファイルやcmdファイルによるサービスの停止と開始は?
-
[解決済み】DOSバッチでの論理演算子("and"、"or")について
-
[解決済み】バッチファイル内で管理者権限を要求する方法
-
[解決済み] 複数のDOSコマンドを並列に実行するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] %~dp0とはどういう意味ですか、またどのように機能しますか?
-
[解決済み] 線路が別々でないと無効なスイッチ
-
[解決済み] ステートメント: %%i '現時点では予期しない' を表す一行。
-
[解決済み] ロボコピーが無効なパラメータ#3
-
[解決済み] バッチファイル内でif - else構造を使用するには?
-
[解決済み] Raspberry Piにリモートでファイルを転送し、再起動させる自動スクリプトを実行してみる
-
[解決済み] cURLの出力をファイルに取り込むには?
-
[解決済み】BATファイル実行後、CMDを開いたままにする。
-
[解決済み] BATファイルです。新しいcmdウィンドウを開き、その中でコマンドを実行する。
-
[解決済み] バッチファイルの起動/呼び出し時に、引数が定義されているかどうかを確認するにはどうすればよいですか?